作家
登录

javascript 类和命名空间的模拟代码

作者: 来源:www.28hudong.com 2013-03-30 01:14:58 阅读 我要评论

先上一段最简单的: 复制代码 代码如下: // 以下几行代码展示了命名空间、类、以及函数的模拟定义和使用: NameSpace = {}; NameSpace.Class = function(){ this.Method = function(info){alert(info);} }; new NameSpace.Class().Method("Hello world"); 再来一些可见到的,各种情况的代码 1.类的模拟 复制代码 代码如下: // 类定义 function Class(info){ // 私有成员 var privateData = "private data"; var privateMethod = function(){writeline("private");}; function privateMethod2(info){writeline("private");} // 公有成员(使用this) this.Data = "public data"; this.Method = function(){writeline(info);}; }; // 类的静态成员 Class.StaticData = "static data"; Class.StaticMethod = function(info){writeline(info);}; 2.命名空间的模拟 复制代码 代码如下: function NameSpace(){} 或者 NameSpace = {}; 或者 NameSpace = new Object(); 3.目标:创建类实例,并调用实例方法 复制代码 代码如下: var o = new NameSpace.Class("hello world"); o.Method(); // 使用已有的类定义,并用静态方法挂到NameSpace下 NameSpace.Class1 = Class; new NameSpace.Class1("new NameSpace.Class1().Method()").Method(); // 或者:新建类定义 NameSpace.Class2 = function(info){ this.Method = function(){writeline(info);}; }; new NameSpace.Class2("new NameSpace.Class2().Method()").Method(); 4.目标:调用类的静态函数 复制代码 代码如下: NameSpace.Class.StaticMethod(); // 静态对象+静态方法 NameSpace.Class3 = {}; // {}表示这是一个对象,或者用new object(); NameSpace.Class3.Method = function(info) {writeline(info);}; NameSpace.Class3.Method("NameSpace.Class3.Method()"); // 或者:new一个对象赋予静态成员 NameSpace.Class4 = new Class("NameSpace.Class4.Method()"); NameSpace.Class4.Method(); // 或者:匿名函数用于定义类,再用new创建对象 NameSpace.Class5 = new (function(info){ this.Method = function(){writeline(info);}; })("NameSpace.Class5.Method()"); NameSpace.Class5.Method(); // 或者:JSON方式(类定义+创建同时完成) // 优点是简单,缺点是不能传递参数进去 NameSpace.Class6 = { Method : function(info){writeline(info);} }; NameSpace.Class6.Method("NameSpace.Class6.Method()"); 演示代码: Javascript 类和命名空间的模拟 请查看源代码并跟踪测试 整理收集:http://surfsky.cnblogs.com 最后更新:2010-10 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]ps.很开心,vs2010对js的智能感知越来越好用了:p 出处:http://surfsky.cnblogs.com

  推荐阅读

  Dom元素变换效果(工具函数)

用js来控制行为,控制页面表现。恐怕是我们用它来做的最多的事情了...   jQuery为什么这么受欢迎,我想,一方面是它的选择器[selector]足够牛B,另一方面应该要归功于它在dom变换上做足了功夫。   于是,秉承着>>>详细阅读


本文标题:javascript 类和命名空间的模拟代码

地址:http://www.17bianji.com/kaifa2/JS/25571.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)