我希望能够使用下划线的extend
函数并实现特定的案例。默认情况下,extend
会使用源的任何现有成员覆盖目标的任何现有成员。我的问题是我想保持目标和源的初始化方法完好无损,所以我所做的大致是:
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;
}
这是正确的方法吗 - 通过拆卸和重新连接?我的意思是,我想保持下划线完整,我不想用任何方法扩展它,因为这是一个非常具体的情况。你发现了什么潜在的
答案 0 :(得分:17)
只是一个简单的想法,_.extend
可以接受多个来源:
_.extend( this, comp, { initialize:this.initialize });
答案 1 :(得分:17)
我参加派对的时间已经很晚了,但_.defaults
正是你要找的。 p>