先上一段最简单的:
复制代码 代码如下:
// 以下几行代码展示了命名空间、类、以及函数的模拟定义和使用:
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()");

演示代码:

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
ps.很开心,vs2010对js的智能感知越来越好用了:p
出处:http://surfsky.cnblogs.com
标签:
命名空间

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

评论“javascript 类和命名空间的模拟代码”

暂无“javascript 类和命名空间的模拟代码”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。