こんにちは、この質問が何度も寄せられていることは承知していますが、意見や議論が多すぎます。私は答えを検証するための最高の経験を持っていないので、ここで私が探しているものを説明し、おそらくあなたは私を正しい方向に向けることができます.
私のアプリでは、いくつかのメソッドを使用してオブジェクトを作成しました。それらのほとんどには、次のように定義済みのデフォルト値のセットがあります。
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
};
私が興味を持っているのは、defaults ローカル変数のプロパティと属性を拡張することです。ご覧のとおり、デフォルトは複雑な構造化オブジェクトです。オプションの構造はさらに複雑になる可能性があることに注意してください。したがって、私が間違っていなければ、単純な浅いマージ/コピーはここでは理想的ではないかもしれません。
ご想像のとおりの使用法:
var app = {
// stuff
}
app.fn = require('common/lib.js');
app.initialize(function(){
var settings = {
// hell here
}
app.fn.submit(settings)
})
前もって感謝します。
PS。ライブラリは使用されておらず、extend() 関数の純粋な JavaScript 実装に興味があります。