我正在查看关于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