日期:2014-05-16 浏览次数:20367 次
前面一章讲解的是单例的两种构建方法。下面就说说单例在JS怎么个最流行、最实用。
单体对象由两个部分组成:包含方法和属性成员的对象自身,以及用于访问它的变量。
它提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一的变量进行访问(通过确保单体对象只存在一份实例,你就可以确信自己的所有代码使用的都是同样的全局资源)。
命名空间是可靠地JavaScript编程的一个重要工具。把相关的方法组织到一起,也助于增强代码的文档性。
JavaScript 的命名空间并不是真正的命名空间, 只是在脚本内部创建一个封闭的小空间, 必须通过特定的空间名称才能对空间内部的代码进行访问, 这样可以防止同名函数和变量发生冲突, 也可以更方便地管理代码, 就像 .NET 的命名空间 (namespace) 和 Java 的包 (package) 一样.
在拥有许多网页的网站中,有些JavaScript代码是所有网页都要用到的,它们通常被存放在独立的文件中;而有些代码则是某个页面专用的,不会被用到其他地方。最好把这两种代码分别包装在自己的单体对象中。
具体做法:封装一些数据(也许是作为常量)、为各页面的行为定义一些方法以及初始化方法。涉及DOM中特有元素的大多数代码,比如添加事件监听的代码,只有在这些元素加载之后才能工作。你可以通过创建一个init方法并将其关联到窗口的load事件(或类似的其他事件,如DOMContentLoaded事件),将所有这些初始化代码组织到一个地方。
/* Generic page Object */ var Namespace = {}; Namespace.PageName = { //页面常量constants CONSTANT_1: true, CONSTANT_2: 10, //Page methods method1: function() { //... }, method2: function(arg) {