[转]创建对象的裸派生
时间:2010-12-12 来源:andygoo
像这样创建裸派生前人已有先例,比如在 JSLint 里面就有:
Object.create = function(o){
var T = function(){};
T.prototype = o;
return new T()
}
只可惜,这样会创建出大量“无用的” T,上面的 derive_k 考虑了这点,只有一个 T,利用“对象的原型只在构造的那一瞬间进行绑定”的特性,大大加快了速度。
Aimingoo 提供了一个增强版本:// get a unique object from a ‘obj’// – clone unique object.
Unique = function(f) {
return function(obj, func, args) {
f.prototype = obj;
return func ? func.apply(new f, args) : new f;
}
}(new Function);
相关阅读 更多 +