原型和非原型方法

Prototyped and a non-prototyped method?

本文关键字:原型 方法      更新时间:2023-09-26

我想知道,JavaScript 中的原型和非原型方法之间的区别是什么?任何帮助都深表感谢。

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

它还将(假设它是在类构造函数的作用域中声明的(有权访问在该作用域中声明的任何其他私有变量(或方法(。

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

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

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

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