当前位置:首页 > 日记 > 正文

对Javascript系列(47)的深刻理解:对象创建模式(第一部分)

对Javascript系列(47)的深刻理解:对象创建模式(第一部分)
介绍

本文主要介绍了创建对象的模式,使用各种技术可以大大避免错误或编写非常简洁的代码。

模式1:名称空间(命名空间)

名称空间可以减少全局命名的数量,以避免命名冲突或过度。

复制代码代码如下所示:

VaR的应用程序| | { } =;

app.modulea = app.modulea | | { };

app.modulea.submodule = app.modulea.submodule | | { };

app.modulea.submodule.methoda =函数(){

console.log(打印);

};

app.modulea.submodule.methodb =函数(){

console.log(打印B);

};
如果有很多层次结构,它将继续下去,这是一个混乱。名称空间模式是为了解决这个问题,我们来看看代码:

复制代码代码如下所示:

/ /不安全,可能会改写现有的MyApp对象

VaR MyApp = { };
如果(typeof MyApp =未定义){

VaR MyApp = { };

}

/更简洁的方式

VaR MyApp = MyApp | | { };

定义一般方法

myapp.namespace =功能(ns_string){

无功部分= ns_string.split(' '),

父为MyApp,

我;

如果默认 / /第一节点MyApp,是不容忽视的,如myapp.modulea

如果(部分{ 0 } = MyApp){

Parts = parts.slice (1);

}

为(i = 0;i < parts.length;i = 1){

如果属性不存在,则创建该属性。

如果(typeof母{ } } = {我部分未定义){

{ } } {我父母部分= { };

}

父=父{ { } };

}

回报父母;

};
调用代码,非常简单:

复制代码代码如下所示:

通过名称空间,可以将返回值分配给本地变量。

VAR模2 = myapp.namespace('myapp。模块。模块2);

console.log(模2 = MyApp.模块。模块2); / /真的

跳过 / / MyApp

MYAPP.namespace('modules。module51);

非常长的名称

MYAPP.namespace(天。对。a.time。那里。是的。长。嵌套属性。);
模式2:定义依赖项

有时,模块的模块或函数可以引用第三方的模块或工具。最好在一开始就定义这些依赖项,以便以后可以很容易地替换它们。

复制代码代码如下所示:

var =函数MyFunction(){()

依赖模块

事件= yahoo.util.event VaR,

DOM = yahoo.util.dom;

在代码后面使用本地变量、事件和DOM /其他函数

};
模式3:私有财产和私有方法

Javascript没有提供特定的语法来支持私有属性和私有方法,但是我们可以通过闭包实现它。代码如下:

复制代码代码如下所示:

函数小工具(){

私有对象

变量名= 'ipod;

/公共功能

this.getname =函数(){

返回的名称;

};

}

新玩具();

未定义名称,是私有的

console.log(玩具的名字); / /未定义

用于访问名称的公共方法

Console.log((玩具。getName)); / / iPod

VaR myobj时; / /通过自我强化功能分配myobj时

(函数(){())

/免费对象

变量名=我的,我的;

公众/部分,所以没有var

myobj时= { {

授权方法

getName:函数(){

返回的名称;

}

};

}();
模式4:启示模式

是一种关于隐藏模式的私有方法,以及深入理解Javascript系列(3):模块模式的综合分析。在模块模式中有点类似,但不返回,但在外部声明变量,然后在内部分配变量的方法给公众:

复制代码代码如下所示:

VaR MyArray;

(函数(){())

VaR时={ } 对象数组

object.prototype.tostring toString =;

功能ISArray(){

返回tostring.call(一)=时;

}

功能指标(草垛、针){

var I=0,

马克斯= haystack.length;

(为;i < max;i = 1){

如果(草堆{ } =针){

还我;

}

}

返回- 1;

}

以赋值方式,最重要的是隐藏的细节。

MyArray = { {

ISArray:ISArray,

指标:指标,

InArray:指数

};

}();

/ /测试代码

console.log(myarray.isarray({ 1, 2 }) / /真实);

console.log(myarray.isarray(0:{ 1 }) / /假);

console.log(myarray.indexof(

console.log(myarray.inarray(

myarray.indexof = null;

console.log(myarray.inarray(
模式5:链式模式

连锁模式允许你调用一个对象的连续,如obj.add(1)(2)。删除。删除(4)加(2)。思考的方式很简单,也就是说,回到原来的样子:

复制代码代码如下所示:

var obj = { {

值:1,

增量:函数(){

this.value = 1;

返回此;

},

添加:函数(v){

this.value = V;

返回此;

},

函数(){

console.log(的价值);

}

};

链接方法调用

obj.increment(增加)(3)(。喊); / / 5

也可以是一个调用

obj.increment();

Obj.add(3);

Obj.shout();
总结

本文是对象创建模型的上部,请期待明天的下一部分。

相关文章

PS图象处理软件做了一个非常漂亮的

PS图象处理软件做了一个非常漂亮的

网页,图象,处理软件,按钮,水晶,这是一个非常简单的PS图象处理软件生产按钮教程,主要是教你如何使用PS图象处理软件的图层样式来创建一个漂亮的网站水晶按钮。 先看看效果吧。 1、打开Adobe CS3软件PS图象处理软件,菜单的实现: / 文件;新(快捷键…

2015感性人格签名

2015感性人格签名

感性,人格,电脑软件,恐怕时间将是唯一一个和我在一起的人。 知道不回去只是最初的回忆。 我不明白你的孤独能把你带走。 可惜我不是太阳,不能给自己光明。 你为什么不留长头发去学喝酒呢。 喜欢孤独的人不是野兽或神灵。 我把青春都放在秘密…

(新手)AI转换位图图标矢量图的方法

(新手)AI转换位图图标矢量图的方法

图标,转换,矢量图,位图,方法,本教程介绍了一个ai的朋友,将位图图标转换为矢量图。本教程比较简单,主要适合初学者学习,推荐一只脚不能回家,喜欢朋友,快点。 在产品的生产中,我们经常去网上搜索一些好的材料,但这些材料是JPG格式的位图,那么我们怎样…

生命激励经典签名

生命激励经典签名

生命,经典,电脑软件,以下是《生命励志经典人格签名》的全部内容 成功很简单,当你坚持不住的时候,坚持下去。 不要羡慕别人的东西,那不如你自己的努力好。 所谓成长,就是强迫一个人你,跌跌撞撞地受伤,跌跌撞撞的坚强。 有些方式,如果你不离开,你永远…

如何改变和替换Word2003中链接地址

如何改变和替换Word2003中链接地址

链接地址,替换,电脑软件,Word插入许多超链接,但发现它是错误的。它需要修改所有路径。如果一个修改是不现实的,那么如何批量修改和替换超链接路径地址呢 操作步骤 在第一步中,打开文件后,按下Alt + F9组合键,和文档转换为域代码。此时,超链接地址…

2015幸福夫妇的签名书

2015幸福夫妇的签名书

夫妇,电脑软件,约会,哇,我们下辈子会在一起的。 协议,我们必须在一起生活在下辈子 空虚的心,只有一个人你告诉我你拥有 空虚的心,只有一个人留给你的感觉 我多么希望一个疯子疯狂地爱我。 我多么希望有一个傻瓜,傻傻地爱着我。 事实上,我很努力,但…

PS教你制作动物效果课程。

PS教你制作动物效果课程。

教你,动物,效果,课程,电脑软件,本文主要介绍PS教你制作虚拟线动物效果课。你喜欢的朋友可以一起学习。 最终结果如下: 第一步:选择画笔工具,主直径为2(这个2由其自身定义)。 第二步:选择笔刷的灵魂,按F5调整画笔,选择双刷,其他不检查,然后调整值。如…

jQuery实现支持IE的HTML滑块

jQuery实现支持IE的HTML滑块

滑块,支持,电脑软件,jQuery,HTML,复制代码代码如下所示: d_b {。 身高:20px; 宽度:10px; 显示:内联块; 背景颜色:黑色; 职位:相对; 垂直对齐:中间; 上图:- 15px; 左:- 5px; } var $ = $(文档); dom.on美元('mousedown ',' # d,函数(参数){) $(这)。数据…

关于PS合成图中屏幕爬数字效果的教

关于PS合成图中屏幕爬数字效果的教

屏幕,教程,数字,图中,效果,钻屏的效果是常见的,但制作过程并不复杂,主要有两个难点:一是学会观察,比屏幕更准确地测量人物,然后处理多余的阴影。 钻屏的效果是常见的,但制作过程并不复杂,主要有两个难点:一是要学会观察,要比屏幕更准确地测量人物,然…

设计玻璃纹理艺术字体金色玻璃质感

设计玻璃纹理艺术字体金色玻璃质感

纹理,字体,玻璃,质感,金色,设计玻璃质感艺术字体,金色玻璃质感 PS金属字符制作教程,PS文字效果制作实例教程:设计玻璃质感艺术字体,金色玻璃质感字,此文字具有立体效果,立体感,非常漂亮,喜欢它,好好学习。 1、新文件、输入文本、字母用数值分隔。 2…

2015关于感性人格签名的记忆

2015关于感性人格签名的记忆

感性,人格,记忆,电脑软件,我怕爱情太早而不是你。 我宁愿闭目哭泣,也不愿哭泣。 我有点想把你推出 心若动,泪是一千行。 最美的风景是最紧迫的。 最深的伤口总是最真实的感觉。 有多少人在错误的时间和空间遇见合适的人。 那是一次美丽的邂逅…

PS图象处理软件将肖像和景观为双曝

PS图象处理软件将肖像和景观为双曝

肖像,图象,处理软件,景观,电脑软件,双重曝光的效果似乎很简单,而且处理起来比较复杂。首先,选择的材料更好,然后挑选出肖像,然后在肖像区域复制风景图片。之后,我们将人物与景观处理相结合,并对色彩进行微调。 双重曝光的效果似乎很简单,而且处理…