我一直想知道 JavaScript 的原型(prototype)性质及其好处,并归结为以下列表:
1)继承
cat.prototype = animal
2) 内存效率
a.prototype.b = function() {}
var a1 = new a();
var a2 = new a();
那么 a1.b 和 a2.b 本质上是同一个对象,其中 as :
var a = function() {
this.b = function() {};
}
var a1 = new a();
var a2 = new a();
a1.b 和 a2.b 是不同的函数对象,会占用更多的内存。
3) 向多个已创建的“野外”对象添加方法/字段。
var a = function() {}
var a1 = new a();
var a2 = new a();
a.prototype.b = function() {}
a1.b();
a2.b();
所以问题是,这些正确吗?
...还有我错过的任何其他好处吗?
干杯!
最佳答案
这些都是正确的。
当然,也有“缺点”:
没有关闭
function a() {
var ival = 0;
this.start = function(){ ival = setInterval(function(){ }, 300); }
this.finish = function(){ clearTimeout(ival); }
}
比较:
function a() {
this.ival = 0;
}
a.prototype.start = function(){ this.ival = setInterval(function(){ }, 300); }
a.prototype.finish = function(){ clearTimeout(this.ival); }
关于javascript - JavaScript 原型(prototype)的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3462464/