原型和非原型方法?

Alf*_*Dev 5 javascript object

我想知道,JavaScript中的prototyped和非原型方法有什么不同?非常感谢任何帮助.

Aln*_*tak 10

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

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

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

function MyObject() {
     var myVar;
     this.func = function() { ... };
};
Run Code Online (Sandbox Code Playgroud)

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

function MyObject() {
     var myVar;
};

MyObject.prototype.func = function() { ... };
Run Code Online (Sandbox Code Playgroud)