0
你好,我知道這個問題已經被問了很多次,但是有太多的意見和論點。我沒有最好的經驗來驗證答案,所以在這裏我會解釋我在找什麼,也許你可以指點我正確的方向。擴展javascript對象及其屬性
在我的應用我已經創建了一個對象,具有一些方法,大多有一組預定義的默認值,就像這樣:
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。沒有圖書館正在使用,我對任何方式的純粹的JavaScript實現的extend()函數感興趣。
您正在使用或的NodeJS在瀏覽器中運行的呢?無論如何,請嘗試:'options.extend(true,defaults);'它設置一個'深度複製'標誌。編輯:至少爲它應該的一些庫。不太確定你的擴展函數來自哪裏。 – Hless
我不使用庫,這是我正在開發的一個應用程序項目,我正在尋找一個純粹的JavaScript解決方案 – Syd