原型和非原型方法?

时间:2012-05-22 15:17:09

标签: javascript object

我想知道,JavaScript中的原型和非原型方法有什么区别?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:10)

非原型方法将在类的每个实例中占用内存。

它也将(假设它在类构造函数的范围内声明)可以访问在该范围内声明的任何其他私有变量(或方法)。

例如,这将为每个对象创建一个函数实例,该函数可以访问myVar

function MyObject() {
     var myVar;
     this.func = function() { ... };
};

并且在这种情况下,对象的每个实例之间只共享一个函数实例,但它无法访问myVar

function MyObject() {
     var myVar;
};

MyObject.prototype.func = function() { ... };