繁体   English   中英

Node.js中的JavaScript原型对象效率

[英]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.doSomethingToothis等于this.model

最佳方法取决于您要尝试执行的操作以及如何构造每个构造函数/原型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM