匿名自執行方法體(function(){})經常用在設計JS插件上面,它定義相關組件的行為,自動初始化相關屬性,而且在頁面中可以直接執行,你不需要手動執行它,它被自動被執行! 在設計你的匿名自執行方法體時,我們有幾點需要註意,在這裡大叔部總結了一下,請看下麵說明 將它的結果賦給一個對象 如果它沒有返 ...
匿名自執行方法體(function(){})經常用在設計JS插件上面,它定義相關組件的行為,自動初始化相關屬性,而且在頁面中可以直接執行,你不需要手動執行它,它被自動被執行!
在設計你的匿名自執行方法體時,我們有幾點需要註意,在這裡大叔部總結了一下,請看下麵說明
- 將它的結果賦給一個對象
- 如果它沒有返回值,那希望使用它的內部對象,需要這個對象是公共的(即不可var)
- 可以將它定義成一個自執行的屬性體
具體介紹這三點
將它的結果賦給一個對象
var ar = (function () { var PageMap = function () { console.log("初始化") }; PageMap.prototype = { get: function (page) { return page; }, set: function (page, value) { console.log("set"); }, has: function (page) { return false; }, clear: function () { console.log("clear"); } }; return PageMap; })(); var a = new ar(); a.set(1, "OK");
如果它沒有返回值,那希望使用它的內部對象,需要這個對象是公共的
(function (option) { option = option || { id: 0, pages: [] }; var pages = []; Maps = function () { console.log("maps init..."); }; //擴展方法 Maps.prototype = { keys: function () { return pages[id] != undefined; }, get: function (id) { return pages[id]; }, set: function (value) { pages.splice(value); pages.push(value); }, append: function (value) { pages.push(value); }, each: function () { console.log("eache pages result"); for (var item in pages) console.log(pages[item]); } }; })(); var arr = new Maps(); arr.append(1); arr.append(2); arr.append(3); arr.each();
可以將它定義成一個自執行的屬性體
var test = ({ // 這裡你可以定義常量,設置其它值, 自動運行 width: 480, height: 640, // 當然也可以定義utility方法 getMax: function () { return this.width + "x" + this.height; }, // 初始化 init: function () { console.log(this.getMax()); // 更多代碼... }, print: function () { console.log(this.getMax()); } }); // 這樣就開始初始化咯 test.init(); test.print();
而對於以後我們的JS組件的設計,可以很好的利用它的這些特點,即自執行!