var Class1 = function() {
this.test1 = function() {
};
};
及以下
function Class1() {
};
Class1.prototype.test1 = function() {
};
是否有这两个之间的区别?
var Class1 = function() {
this.test1 = function() {
};
};
及以下
function Class1() {
};
Class1.prototype.test1 = function() {
};
是否有这两个之间的区别?
第一个函数为每个类实例分别创建一个函数副本。
它也允许函数使用构造函数中的闭包变量。
也有影响性能的差异。
第一个函数会为创建的类的每个实例添加函数,而后者不会。对于后一种方法,JavaScript会查看对象的prototype
链,并返回所需的方法,即test1
。
高效地使用后者。
JavaScript中的函数是对象。 JavaScript中的每个对象都有一个隐藏的状态 - 对另一个对象的引用,这个对象被称为对象的原型。
使用原型多个对象可以保持对同一原型对象的引用。
这是一个很棒的reference了解js中的原型是如何工作的。
这已被问_so_许多次... – SLaks
可以将一个问题关闭为2个问题重复? – Bergi
[在Javascript中使用'prototype'与'this'的可能重复吗?](http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript) – Esailija