使用此
var Class1 = function() {
this.test1 = function() {
};
};
以及
function Class1() {
};
Class1.prototype.test1 = function() {
};
这两者之间有区别吗?
答案 0 :(得分:3)
第一个为每个类实例单独复制一个函数 它还允许函数使用构造函数中的闭包变量。
答案 1 :(得分:0)
也有影响表现的差异。
第一个将为创建的类的每个实例添加函数,而后者则不会。对于后一种方法,JavaScript将查看对象的prototype
链,并返回所需的方法,即test1
。
答案 2 :(得分:0)
是的,有。参见
两个(独立)差异。
答案 3 :(得分:0)
使用后者有效。
JavaScript中的函数是对象。 JavaScript中的每个对象都包含一个隐藏的状态 - 对另一个对象(称为对象的原型)的引用。
使用原型多个对象可以维护对同一原型对象的引用。
知道js中的原型如何工作,这是一个很棒的reference。