[英]JavaScript Prototypal Object Efficiency in Node.js
我想知道以下哪个在Node API
会更有效
function LoginController() {
this.model= new Model();
};
LoginController.prototype.doSomething = function() {
this.model.doSomethingToo();
}
与此:
function LoginController() {
};
LoginController.prototype.doSomething = function() {
new Model().doSomethingToo();
}
据我了解场景#1中的原型对象,每次调用new LoginController()
时,我都会创建一个新的Model 。
在场景2中,当创建第一个new LoginController()
时,我只会创建一次新模型 。 接下来的所有新实例都不会创建另一个Model ,因为它已经在原型函数中创建。
那是对的吗?
不,那是不正确的。 第二种情况是每次执行loginControllerInstance.doSomething
都会创建一个新的Model
实例。
但是,还有其他一些方法可以执行此操作,具体取决于Model.prototype.doSomethingToo
功能,例如:
function LoginController() {
this.model = {};
};
LoginController.prototype.doSomething = function() {
Model.prototype.doSomethingToo.call(this.model);
}
这绝不会初始化Model
的实例,相反,它只会执行Model.prototype.doSomethingToo
用this
等于this.model
最佳方法取决于您要尝试执行的操作以及如何构造每个构造函数/原型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.