我正在查看關於Scrabb.ly的js源代碼。這種設計模式在JavaScript中被稱爲什麼?
我注意到,他們會做一些像這樣每個其獨特的「類」的:
var Board = (function() {
var self = {};
// settings for board
self.options = {
debug: true,
addedPlayTiles: function() {},
clearedPlayTiles: function() {}
};
// set to true once the board has been setup
self.isSetup = false;
// quick access to square elements
self.squares = {};
self.squareCount = 0;
self.setup = function(options) {
self.log("Setting up board!");
// set options
_.each(options, function(val, key) {
self.options[key] = val;
});
return self;
})();
從中間被省略了一些代碼,但是這應該給你的總體思路。
- 以下是什麼目的:
(function() { // code })();
這是我見過的模塊模式嗎?這是否意味着保持全局名稱空間清潔? - 這行是什麼意思?:
var self = {}
自我對象是用來暴露「公共」成員嗎?你將如何定義一個私有函數或變量? - 如果你想要如何實例化多個「Boards」?
我認爲你的意思是「對象」而不是「數組」? – 2010-09-07 19:23:08
@Daniel Vassallo:應該說「對象字面量」,好抓。 – 2010-09-07 19:48:33