我正在對項目中的幾個腳本進行命名空間處理,並且在搜索了一段時間後,我不確定是否按照最佳做法來命名空間屬性。使用jQuery命名空間屬性的最佳模式
這裏是我做的一個樣本:
var myNamespace = myNamespace || {};
$.extend(true, myNamespace, {
subNamespace: {
}
});
$.extend(true, myNamespace.subNamespace, {
data: {}
});
$(document).ready(function() {
myNamespace.subNamespace.data = "Value as string";
alert(myNamespace.subNamespace.data);
});
正如你所看到的,在這種情況下,屬性名稱是「數據」。
這是用javascript,jquery實現名稱空間屬性的好方法嗎?
謝謝
我使用jQuery.extend是因爲我想能夠在不同的步驟中構造子名稱空間的屬性和功能。有了你的解決方案,你將不得不定義所有的subNamespace可以包含在同一個地方。使用我的解決方案,如果我在一個地方添加了一些函數和屬性,並在另一個地方添加了相同的名稱空間,我將不會覆蓋前面步驟中的子名稱空間定義。有可能我錯了?! – Samuel 2012-04-02 21:21:38
你不需要'jQuery.extend'來做到這一點:'var top = {}; top.sub = {}; top.sub.data ='whatever';' – David 2012-04-03 09:09:13