我一直在使用jQuery.extend更换这样从JavaScript中另一个对象的属性更换对象的属性,没有图书馆
var Car = function(options){
var defaultOptions = {
color: "hotpink",
seats: {
material: "fur",
color: "black",
count: 4
},
wheels: 4
}
this.options = $.extend(true,{},defaultOptions,options);
}
var myCar = new Car({
color: "blue",
seats: {
count: 2,
material: "leather"
}
});
alert(myCar.options.color); // "blue"
alert(myCar.options.seats.color); // "black"
alert(myCar.options.seats.count); // 2
默认属性虽然它的伟大工程,我想知道最好的没有任何图书馆的方式来实现类似的结果我只是想在函数中定义一些默认设置,并用参数中的设置替换它们,每次我这样做时都会包含一个库来矫枉过正。
如果OP想要保留API,那么jQuery是一个好的开始,但是如果OP准备改变(简化)API,则构建的扩展可以更短,更高效和更健壮(例如,jQuery * isPlainObject *非常普通而且不必要,* isFunction *或* isArray *)也是如此。 – RobG 2012-07-25 09:52:26
RobG说,jQuery实现看起来像是一个相当多的代码。我想知道是否有任何解决方法或解决此问题的其他方法。 – user1463028 2012-07-26 09:43:32
我试图做一个易于使用的,独立的代码片段,基本上只有一个函数,里面有几个方法。有点像jQuery插件,但不依赖于jQuery。 我想让用户在一个单一的对象中定义所有的选项为了可读的代码,但我想定义一切的默认值,所以用户不需要改变任何东西,如果他对默认值满意外观和功能。 – user1463028 2012-07-26 09:53:51