jQuery有一個非常整潔的extend
方法,它將2個對象合併成一個。爲什麼要將空對象傳遞給jQuery的擴展方法?
在jQuery Plugins authoring page他們顯示舉例如下:
var settings = $.extend({
'location' : 'top',
'background-color' : 'blue'
}, options);
不過,我已經看到了很多的插件傳遞一個空對象作爲第一個參數,像這樣:
var settings = $.extend({}, {
'location' : 'top',
'background-color' : 'blue'
}, options);
據就我所知,這兩個人完全一樣。唯一的區別是,如果defaults
會被存儲在其自己的變量:
var defaults = {
'location' : 'top',
'background-color' : 'blue'
},
settings = $.extend({}, defaults, options);
這樣,您就可以隨時訪問你的違約沒有他們由options
被覆蓋。
這裏的問題:爲什麼很多插件作者選擇一個空的對象傳遞給extend
,即使他們不默認存儲在一個變量?
我錯過了什麼嗎?
似乎毫無意義的我。這是一個人口稠密的,複製到一個空的,並丟棄它。你的第三個例子顯示了一個有效的原因我猜人們這樣做是因爲他們不考慮他們在做什麼。 – 2012-03-11 20:20:18
@amnotiam這正是我的想法,但我見過*很多*插件做到這一點。顯然我錯過了一些東西... – 2012-03-11 20:21:09
不,我認爲麻煩在於你*得到了*某物。 – 2012-03-11 20:21:41