我有课
function Foo(a) {
this.a = a;
this.bar = function () {
console.log(this.a);
};
this.buz = function () {
this.a();
console.log('bzz');
};
}
我将有很多这个类的实例。我应该将方法移到原型吗?
function Foo(a) {
this.a = a;
}
Foo.prototype = {
bar: function () {
console.log(this.a);
},
buz: function () {
this.a();
console.log('bzz');
}
}
答案 0 :(得分:6)
是。这将节省内存,因为每次实例化类时,每个方法都将shared
而不是重新创建。
构造函数中的方法被认为是privileged methods
,因为它们可以在构造函数内访问private variables
,并且只应在需要访问私有变量时使用。
答案 1 :(得分:1)
放置类方法是一个保存内存的好主意。原型中只有一个方法实例,而不是每个对象中的许多实例。
答案 2 :(得分:1)
在JS中构造函数内部定义方法的唯一原因是创建“Privileged”方法。
我们的想法是创建一个公开可用的方法,但可以访问私有实例变量。