Javascript 使用下划线';扩展(…),而不覆盖某些目标';s成员
我希望能够使用下划线的Javascript 使用下划线';扩展(…),而不覆盖某些目标';s成员,javascript,underscore.js,Javascript,Underscore.js,我希望能够使用下划线的extend函数并实现一个特定的案例。默认情况下,extend用源的现有成员覆盖目标的任何现有成员。我的问题是,我想保持目标和源的initialize方法不变,所以我所做的大致是: addComponent: function(comp, init) { var iF; if (comp.initialize) { iF = comp.initialize; delete comp["initialize"]; } _.
extend
函数并实现一个特定的案例。默认情况下,extend
用源的现有成员覆盖目标的任何现有成员。我的问题是,我想保持目标和源的initialize方法不变,所以我所做的大致是:
addComponent: function(comp, init) {
var iF;
if (comp.initialize) {
iF = comp.initialize;
delete comp["initialize"];
}
_.extend(this,comp);
if (iF) {
comp.initialize = iF;
comp.initialize.call(this,init);
}
return this;
}
通过分离和重新连接,这是正确的方法吗?我的意思是,我想保持下划线不变,我不想用任何方法扩展它,因为这是一个非常特殊的情况。您是否发现了任何潜在的只是一个简单的想法,
\uExtend
可以接受多个来源:
_.extend( this, comp, { initialize:this.initialize });
我参加聚会真的迟到了,但这正是你想要的。\u默认值只能达到一个级别。如果类似于:{a:{b:{XYZ}}和{a:{c:{TTT}}的东西,那么它将不起作用。是否存在多级默认值?