我正在尝试找出创建对象实例的最有效方法。
开始时,我使用了以下代码:
var Foo = function(a, b, c)
{
this.a = a;
this.b = b;
this.c = c;
}
Foo.prototype.func = function()
{
// Do stuff;
}
var bar = new Foo(1, 2, 3);
bar.func();
后来我听说最好跳过原型,因为新的原型可能会浪费不必要的内存,得到类似这样的结果:
var Foo = function(a, b, c)
{
return {
a:a,
b:b,
c:c,
func:function()
{
// Do stuff;
}
}
}
var bar = Foo(1, 2, 3);
bar.func();
然而,现在当我调用多个Foo实例时,就会出现创建相同函数的问题... 那么怎么办呢...
var Foo = {
a:null,
b:null,
c:null,
func: function()
{
// Do stuff;
}
}
function newFoo(a, b, c)
{
var tmp = function(){};
var obj = new tmp();
obj.prototype = Foo;
obj.a = a;
obj.b = b;
obj.c = c;
return obj;
}
var bar = newFoo(1, 2, 3);
bar.func();
但现在我已经拿到了原型...
我的主要关注点是速度。涉及的对象并不太复杂,大多是一堆属性和函数。对象可以快速地创建和销毁(这就是为什么速度很重要的原因)。
谁知道最有效的方法是什么?
func
方法的好处。 - user1106925