Javascript原型什么是正确的?

时间:2014-04-30 05:40:36

标签: javascript prototype

嘿伙计们我在javascript中有关于原型的问题。

以下哪项是使用原型的正确和最佳方式?为什么?

var myClass = function(){
this.anotherFunction();
}

myClass.prototype.anotherFunction = function(){
  console.log('my prototype function');
}
var foo = new myClass(); // which automaticaly performs the function

OR

var myClass = function(){
}

myClass.prototype.anotherFunction = function(){
  console.log('my prototype function');
}
var foo = new myClass();
foo.anotherFunction(); // performs the function only when called

谢谢!

1 个答案:

答案 0 :(得分:0)

第一个实现直接从构造函数调用方法。这些方法通常是某种初始化方法,它们构建this上下文所需的内部状态。在非JavaScript中,适当的OOP说这意味着直接从类构造函数调用一个方法来构建一些初始状态。

第二个实现将原型函数anotherFunction公开为公共接口的一部分。

简而言之:两种变体都是正确的,但实现了不同的概念