你好我知道这个问题已经被问过很多次了,但是意见和争论太多了。我没有最丰富的经验来验证答案,所以在这里我会解释我在寻找什么,也许你可以指出我正确的方向。
在我的应用程序中,我创建了一个包含一些方法的对象,其中大多数都有一组预定义的默认值,如下所示:
module.exports = {
submit: function(options) {
var defaults = {
_id: 1453,
text: 'Some text',
dataObj:{
links: 3532,
arr: ['James','Paul','Lina'],
},
dims:{
width: getClientWidth(),
height: getClientHeight()
}
}
options.extend(defaults);
return sendData(defaults);
}
// other similar methods - functions
};
我感兴趣的是扩展默认局部变量的属性和属性。如您所见,默认值是一个复杂的结构化对象。请记住,期权结构可能更加复杂。因此,如果我没记错的话,简单的浅合并/复制在这里可能并不理想。
你可以想象的用法:
var app = {
// stuff
}
app.fn = require('common/lib.js');
app.initialize(function(){
var settings = {
// hell here
}
app.fn.submit(settings)
})
先感谢您。
PS。没有使用任何库,我对以任何方式实现 extend() 函数的纯 javascript 实现感兴趣。