我应该在原型上还是在新创建的实例上调用构造函数方法?

马诺吉·帕蒂亚(Manoj Patial)

我创建一个类var Emp = function() { };,然后在该类的原型中将函数定义为

Emp.prototype.function1 = function() { /* some definition */ };
Emp.prototype.function2 = function() { /* some definition */ };
// .. so on

对性能有什么影响?哪种方法有效?为什么?

情况1:如果我调用函数

Emp.prototype.function1(); 

情况2:如果我先创建一个Emp实例

var empobj = new Emp();
empobj.function1(); // function calling  
拉贾普布(Rajabrabhu Aravindasamy)

如果使用情况1,则默认情况this下上下文将指向prototype对象,因此instance无法使用值访问值。

例如:

var x = function(){ this.a = 10 };
x.prototype.y = function(){ console.log(this.a) };
x.prototype.y(); // This will print undefined since 
 //there is no properties other than y in the prototype of x.

在第2种情况下,您可以同时访问prototype对象和instances值。一个示例代码是

var x = function(){ this.a = 10 };
x.prototype.y = function(){ console.log(this.a) };
var obj = new x();
obj.y(); // `y` can be accessed also. And it will output 10.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我应该在声明中还是在构造函数中实例化实例变量?

我应该在构造函数还是 OnAppearing 方法中设置我的 ViewModel 字段的文本?

我应该在声明、init 块、构造函数还是 lateinit 上初始化变量?

我应该在构造函数还是成员方法中进行大量初始化工作?

我应该在创建对象的循环中引用实例还是类方法?

我应该在构造函数内部还是外部构造函数中初始化变量

我应该在JavaScript中嵌套构造函数和原型吗?

Clojure:我应该在构造函数之前添加new还是make?

我应该在构造函数的上方还是下方包含 module.exports

我应该在不会返回堆栈上的Perl的SV上调用SvREFCNT_dec()吗?

我应该在嵌套诺言上调用.catch吗?

在原型上定义函数时,是否在每个新实例上都重新创建了函数?

我应该在调用异步方法的方法中返回 ValueTask 还是 Task

是否应该在分配时调用构造函数?

我应该在main()内部还是外部定义函数?

我应该在函数内部还是外部声明变量?

我应该在构造函数中引发异常吗

我应该在构造函数中构建对象吗?

我应该在构造函数中验证参数吗?

我应该在表单上还是在类 set 方法中执行输入验证?

我应该在构造函数中启动BackgroundWorker子类的RunWorkerAsync方法吗?

我应该在请求中创建executorService还是在Web应用程序中共享一个实例?

在 openGL 中,模型坐标应该在我的 CPU 上还是在 GPU 上通过 OpenGL 调用计算?

上下文和InitialContext-我应该在这些对象上调用close()方法吗?

我应该在定义函数的模块中还是在Python中调用的模块中定义try-except?

清洁代码最佳实践,我应该在函数内部还是在调用者中验证数据?

当实际上应该在记录上调用Resque时,它正在类上调用方法,从而产生无方法错误

我应该在哪里调用使用数据的方法?

我什么时候应该在 ZipOutputStream (SharpZipLib) 上调用 Finish