由于MM的事件已干完,接着我们的静态类的实现。这东西在Javascript里用得会非常的频繁,因为针对现在的网页,多个基于同一个类对象的页面不多,往往不同块对象的交互就可以解决问题了,这就需要在JS针对元素定义几个静态类就可以完事了,进入正题。
这次我们直接看例子:
代码
/* **定义静态类** */ var StaticClass = ( function (){ var Return = { Property: " Test Static Property " , // 公有属性 Method: function (){ // 公有方法 alert(_Field); // 调用私用字段 privateMethod(); // 调用私用方法 } }; // 定义返回的公有对象 var _Field = " Test Static Field " ; // 私有字段 var privateMethod = function (){ // 私有方法 alert(Return.Property); // 调用属性 } return Return; // 生成公有静态元素 })();
这次,我用的是闭包的方式去实现,其中最重要的一点是reutrn Return; 这里会引伸到值类型与引用类型的概念。在js里,Object就是一个引用类型,在闭包里,我会抛出一个包含有属性与方法的Object的引用,这样,也可以说是把这个Object抛向了外部,实现了公开。StaticClass这个变量接住了Return引用。 对于闭包内部的私有字段与方法都是没有被抛出的,这样就可以形成一个私有的环境。
很多时候我们都会用这种技巧去对JS进行分块,让程序不会那么的混乱。
上面的例子没这么干过的兄弟们也可以自己去试试。忘了,刚刚那个例子大家可以这么样去试试。StaticClass.Method();
StaticClass.Property = "Test2";
StaticClass.Method();