0
我目前正在開發一個項目,並且已經看到下面的代碼用於在窗口對象中存儲每個「模塊」(如此)。多年來,我已經做了大量的Javascript,並且從我對最佳實踐的理解中,您想避免污染全局名稱空間。這會被認爲是污染全球命名空間嗎?最佳實踐:全局對象vs模塊
(function (global) {
"use strict";
// Public methods.
var exports = {};
/*
* Some other configuration/members
*
*/
global.Helper = exports.members;
return exports;
}(window));
我習慣於使用模塊模式來構建我的Javascript。
下面的示例。
var module = (function() {
var defaultOptions = {
//some options
};
var init = function (options) {
defaultOptions = $.extend(defaultOptions, options, false);
};
/*
* More code
*
*/
//public functions
return {
init: init
}
})();
從最佳做法的立場來看,我對我的理解還是完全錯過了船?
是否可以接受的做法是將每個模塊存儲在窗口對象中?
「從而避免存儲在一個全局命名空間中的任何」 ---但'變種module'是一個全球性的空間中定義。 – zerkms
公平的評論,重寫了這篇文章 – Mikechats
你必須在全局命名空間中放置** **,否則應用程序將無法使用它。但是,您可以通過爲整個名稱空間使用一個名稱,並使用每個模塊的屬性來最小化污染。就像所有jQuery插件都是'$ .something'一樣。 – Barmar