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

javascript(面向面向对象编程)的分析

javascript(面向面向对象编程)的分析
AOP也被称为面向方面的编程,这是通知部具体实施,分为前(预通知)、后(后通知),左右(约通知)用弹簧,学生必须非常熟悉,并在JS,AOP技术严重忽视。但是使用它能有效地改善例如JS代码逻辑,在前面框架Dojo和YUI3 AOP的内在机理是升级到自定义事件,可以在源代码中随处可见。由于这个抽象,道场的自定义事件是非常强大和灵活。在道场AOP的实现在道场 /内容模块三个主要途径:前,后和周围。这篇文章将引导你一步一步地实现。下面的文章将深入分析结构系统的道场/方面模块。

js是使用回调(回调)来实现环绕通知的最简单也是最重要的事情。
建议=功能(originalfunc){
console.log(前);
OriginalFunc();
console.log(后功能);
}
var obj = { {
函数(){
console.log('foo);
}
}
建议(obj。Foo)
结果uff1a

在功能

Foo

经过功能

哈哈,回去睡觉太简单。 U3000 U3000

但是,是不是有点太粗糙了,这是一个很好的圆。至少下一个电话obj.foo应该是结果,而不是干foo;因此我需要改变,利用闭合
建议=功能(originalfunc){
返回函数(){
console.log(前);
OriginalFunc();
console.log(后功能);
}
}
var obj = { {
函数(){
console.log(这个名字);
},
名称:目标
}
obj.foo =建议(obj。Foo)
Obj.foo()
输出:

在功能
经过功能
它看起来像环绕的效果,但却说出了好名字。

在通知返回的闭包中,我们还必须处理范围问题。
建议=功能(originalfunc){
返回函数(){
console.log(前);
OriginalFunc();
console.log(后功能);
}
}
var obj = { {
函数(){
console.log(这个名字);
},
名称:目标
}

keepcontext =函数(){
返回obj { 'foo'}呼叫(obj);
}

obj.foo =建议(keepcontext);
它似乎是用调用来解决范围问题。让我们运行它。
凹槽,这是死循环的传说。
它似乎必须改变,使用一个中间变量来消除死循环。
建议=功能(originalfunc){
返回函数(){
console.log(前);
OriginalFunc();
console.log(后功能);
}
}
var obj = { {
函数(){
console.log(这个名字);
},
名称:目标
}

VaR存在= obj.foo;

keepcontext =函数(){
返回exist.call(obj);
}

obj.foo =建议(keepcontext);
Obj.foo();
输出:

在功能

obj

经过功能

哈哈,世界突然变得美丽了。

但看起来这一堆代码并不太低,我们将得到一点高度抽象。嗯,我想是这样。
功能(obj,道具,建议){
VaR存在= obj {道具};
var =建议(函数()){
返回exist.call(obj参数);
});
obj {道具} =建议;
}

建议=功能(originalfunc){
返回函数(){
console.log(前);
OriginalFunc();
console.log(后功能);
}
}
var obj = { {
函数(){
console.log(这个名字);
},
名称:目标
}

在(obj,'foo,建议);

Obj.foo();
环绕方法将进程与特定对象解耦,只要按下面的格式编写,就可以获得周围的效果。
建议=功能(originalfunc){
返回函数(){

OriginalFunc();

}
}
哈哈,此刻高,疯狂拉凉渣天有…

U3000 U3000

接下来的问题是:如果你不小心打在法swollen.yes.this是一个问题,如果我们要让在返回一个句柄与消除消除绑定结合 /删除事件的方法。

删除是让函数要执行的下一次不执行相应的方法,但只运行originalfunc方法
功能(obj,道具,建议){
VaR存在= obj {道具};
var =函数(){()
返回exist.call(obj参数);
};
建议(上);
obj {道具} =建议;

返回{
删除:函数(){
Obj{prop} = exist;
建议= null;
前=空;
存在=空;
obj = null;
}
}
}
var计数= 1;
建议=功能(originalfunc){
var电流=计数+ +;
返回函数(){
console.log(前+电流);
originalfunc(参数);
console.log(后功能+电流);
}
}
var obj = { {
函数(精){
console.log(this.name + 和+精氨酸);
},
名称:目标
}

H1 =周围(obj,'foo,建议);
H2 = around (obj,'foo', advice);
Obj.foo();
h1.remove();
Obj.foo();
h2.remove();
Obj.foo();
输出:
在功能2
在功能1
obj对象参数}和{
经过功能1
经过功能2
对象和定义
在功能1

这一个。不仅结果有点乱。还错了……是可以忍受的,叔叔不能忍受,叔叔能忍受,嫂子不能忍受!
啊,闭包,请给我力量。
功能(obj,道具,建议){
VaR存在= obj {道具};
var =函数(){()
返回exist.apply(obj参数);
};
建议(上);
obj {道具} =函数(){
当您调用删除时,建议是空的。
使用范围链闭包可以访问建议的和先前的变量,根据是否是空的来决定谁可以调用。
还建议advised.apply(obj参数):previous.apply(obj参数);
};

返回{
删除:函数(){
使用范围链闭包,当移除时建议将为空,而不是在实现过程中进入周围。
不能删除
/ / obj {道具} =存在;
建议=空;
建议= null;


/ / obj = null;
}
}
}
var计数= 1;
建议=功能(originalfunc){
var电流=计数+ +;
返回函数(){
console.log(前+电流);
originalfunc.apply(这个参数);
console.log(后功能+电流);
}
}
var obj = { {
函数(精){
console.log(this.name + 和+精氨酸);
},
名称:目标
}

H1 =周围(obj,'foo,建议);
H2 =周围(obj,'foo,建议);
Obj.foo('Hello World);
h1.remove();
Obj.foo('Hello World);
h2.remove();
Obj.foo('Hello World);

输出:

在功能2
在功能1
obj,你好世界
经过功能1
经过功能2
在功能2
obj,你好世界
经过功能2
obj,你好世界
收盘后!
第一个晚上的博客是喝醉了,听到下我妈的我二点,四点听到乌鸦乌鸦,没有人知道什么鸟,啾啾的电话,五点这一束鸟…

参考文章:

使用AOP来改进Javascript代码

YUI3的AOP(面向面向对象编程)和OOP(面向对象编程)

对切向编程(AOP)的理解

相关文章

文件操作(splfileinfo和SplFileObje

文件操作(splfileinfo和SplFileObje

文件操作,实例,标准,电脑软件,PHPSPL,在PHP SPL,两类splfileinfo和splfileobject提供处理文件操作。 splfileinfo是用来获取文件的细节: 复制代码代码如下所示: 文件大小=新splfileinfo('foo-bar .txt); print_r(阵列( getatime= >文件> getat…

如何节省手机的电池电量QQ常见问题

如何节省手机的电池电量QQ常见问题

常见问题,电池电量,节省,电脑软件,QQ,它可以在主界面上进行节电管理,节电管理提供三种节电模式,如智能节电、超长待机模式和极限模式。 根据节能需要建立21个省级项目,有效降低电耗,延长使用时间。包括Wi-Fi,智能调整移动网络,设置屏幕亮度、屏…

PS图象处理软件普通工具PS实用技巧

PS图象处理软件普通工具PS实用技巧

技术工具,工具,图象,处理软件,实用技巧,一:当你需要快速隐藏工具栏和浮动面板,单击关闭按钮一个一个面板上,然后用打开,非常方便。事实上,你也可以按下键盘上的Shift和tab键,这样浮动面板会立即隐藏屏幕上消失,然后按下两个按钮,面板会出现;如果只按…

PS使用图层样式和笔刷制作缝纫补丁

PS使用图层样式和笔刷制作缝纫补丁

图层,样式,补丁,笔刷,电脑软件,本教程是由两部分组成:牛仔布补丁和牛皮的。它也很相似,对生产过程中的两个部分:先用区域拦截想要的纹理,使用图层样式,具有浮雕效果的初步,然后缩小选区,增加中风、缝纫线可以得到初步的结果,后来添加一些细节可以增…

PS绘图教程:狐狸的详细步骤

PS绘图教程:狐狸的详细步骤

绘图,步骤,教程,狐狸,详细,那些迷人的漫画该怎么画下面的小编辑器给大家带来ps板画图教程,详细的步骤是画一个狐狸,相信很多朋友都会看到的,好吧,让我们看看吧。 下面的小编辑器将为大家带来PS绘图课程,并画出狐狸的详细步骤。我相信很多朋友会…

PPT2007主版,模板和主题的设计和应

PPT2007主版,模板和主题的设计和应

教程,模板,主版,主题,电脑软件,前言:一个完整的专业介绍,有许多地方需要统一:统一的内容、背景、色彩搭配和文本格式,这些统一应该用主版本、模板或主题来表达,如何协调有序 大师和模板:普通和个性舞蹈 在PPT2007设计文稿,除了每张幻灯片的制作,…

如何在PS图象处理软件文件并打开一

如何在PS图象处理软件文件并打开一

文件,图象,处理软件,空白,如何在,如何在PS图象处理软件文件并打开一个空白的明和明是一个很好的文件,但它是开放与PS,我应该怎么办现在让我们看看如何显示PS图象处理软件文件的内容,和你需要的朋友可以参考一下。 经常有网友问我:PSD或TIF文件,…

治愈字体选择障碍

治愈字体选择障碍

选择,字体,治愈,障碍,电脑软件,萧边今天要分享一篇文章给你。它被称为治愈你的字体选择障碍。这篇文章很好。值得学习。让我们一起学习。 治愈字体选择障碍…

快捷键的方法Word2007教程,快速掌握

快捷键的方法Word2007教程,快速掌握

教程,方法,快捷键,快速,电脑软件,下面是您提供的快速掌握快捷键方法,欢迎大家阅读。 在使用鼠标操作时,由于手的动作范围比较大,很容易影响工作的效率,如果要完成需要快速执行的任务,使用快捷键是很好的方法。只需在键盘上按下一个或多个键就可…

用PHP实现tcp端口检测的方法

用PHP实现tcp端口检测的方法

方法,检测,端口,电脑软件,PHP,本文介绍了一种用PHP实现tcp端口检测的方法,供大家参考: 这个程序可以确认当前端口是否可用: 类健康{ 公共静态$状态; 公共功能__construct() { } 公共功能检查(IP,端口){ 袜子= socket_create美元(af_inet,sock_stream…

如何用词使信纸Word2003教程

如何用词使信纸Word2003教程

教程,信纸,电脑软件,怎样用文字来写一封信,很多时候人们可以用文字来制作一些文件的优美格式,打印出来是很私人的事情,例如,我做信纸、笔记本等,让人有成就感,也很细心,用文字做纸很简单。让我们看一看。 1,第一步是点击表中插入一个表格,因为平时的…

Word2003快速取消所有项目编号格式

Word2003快速取消所有项目编号格式

方法,教程,取消,项目编号,快速,做任何事情总是有问题。制作word文档也是一样的。尤其是在编写长文本时,不可能一次编辑所有内容,如您所知,在编写文档时不可避免地使用项目编号函数,并且自动生成项目编号函数,如1, 2, 3、4, 5等。 那么我们如何快…