// Combiner of passed arguments and defaults (usable with any function)
Object.prototype.combine = function(_args){
for(var i in this) {
if(typeof _args[i] == "undefined") {
_args[i] = this[i];
}
}
};
// Specific example function with defaults
function feedTheCat(args){
var defaults = {
'morning' : "nothing",
'noon' : "pork",
'nite' : "mouse"
};
defaults.combine(args);
}
// USAGE: only passing 2 of 3 arguments
feedTheCat({
'morning': "milk",
'nite': "kitekat"
});
// Values would be: milk | pork | kitekat
谢谢,完美的解决方案。
或者 jQuery 中的 $.extend
修复 BUG!
最好不要使用 Object 的原型,这样会在尝试对其进行 foreach 时遇到问题,该原型会出现在所有对象的列表中,需要使用 hasOwnProperty 来省略它,所以最好使用简单的函数。