我想知道,JavaScript中的原型和非原型方法有什么区别?非常感谢任何帮助。
答案 0 :(得分:10)
非原型方法将在类的每个实例中占用内存。
它也将(假设它在类构造函数的范围内声明)可以访问在该范围内声明的任何其他私有变量(或方法)。
例如,这将为每个对象创建一个函数实例,该函数可以访问myVar
:
function MyObject() {
var myVar;
this.func = function() { ... };
};
并且在这种情况下,对象的每个实例之间只共享一个函数实例,但它无法访问myVar
:
function MyObject() {
var myVar;
};
MyObject.prototype.func = function() { ... };