从零开始学_JavaScript_系列(26)——dojo的aspect方法

(86)apsect

模块:dojo/aspect

参数:apsect

 

【方法一】:aspect.after(对象,
”方法名”,
回调函数)

说明:

将在指定对象的方法执行结束后,执行回调函数;

 

例如,在点击

<div id="aa" style="width:100px;height:100px;background-color:green"></div>

 

这样一个dom后,会触发test对象的test方法;

test方法的效果是弹窗,显示2;

而apsect会监听test对象的test方法,当他触发test方法后,在test方法执行完毕之后执行aspect中第三个参数的函数。

如示例:

 

require(["dojo/aspect", "dojo/on", "dojo/dom", "dojo/domReady!"], function (aspect, on, dom) {
    on(dom.byId("aa"), "click", function () {
        test.test();
    })
    var test = {
        test: function () {
            alert("2");
            return "1";
        }
    }
    aspect.after(test, "test", function (arg) {
        alert(arg)
    })
})

 

 

【方法二】:aspect.before(对象,
”方法名”,
回调函数)

与after相反,他将先执行aspect的回调函数,执行完毕之后再执行原方法。

例如在上面的例子中,更换为before,会导致先alert(undefined),再alert(“1”)

 

之所以会输出undefined

原因在于,这种情况下是不能获取test对象的test方法的返回值的。

 

时间: 2024-09-23 10:18:48

从零开始学_JavaScript_系列(26)——dojo的aspect方法的相关文章

从零开始学_JavaScript_系列(22)——dojo(9)(表单、JsonRest的post方法,widget的使用思路)

(74)dojo的表单模块 插件:dojo/dom-form 参数:domForm 解释:        当我们需要像服务器提交很多内容时(比如很多个input输入框,还有一些单选按钮.多选按钮),我们必须将这些输入框的值变成一个对象(也许还要转为一个json字符串),在post的时候将其传递给服务器:          假如一个一个读过去,这也太傻了.所以这就是dom-form方法的作用了.        先上代码: <!DOCTYPE html> <html> <head

从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)

如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo. 关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论.或者站内信,我会尽快回复. (21)和(22)写的不好,跳过. (23)AJAX异步加载 插件:dojo/request 参数:request 语法(get): re

从零开始学_JavaScript_系列(五)——dojo(基础,动画移动,重力模拟,动画合并,添加标签)

关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论.或者站内信,我会尽快回复.   (1)加载 ①首先,先设置   <script>      //替代使用data-dojo-config,我们创建一个dojoConfig对象(是个设置)在我们调用dojo.js之前,他们功能相同      //这比通过一大堆设置来说,更易阅读         var dojoConfig = {       

从零开始学_JavaScript_系列(十)——dojo(3)(GRID表格创建、样式、列宽可变、排序、过滤器)

如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo.(当然,本篇也考虑了未使用过dojo的人,可以只阅读该链接关于dojo下载的部分,以获得dojo) 关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论.或者站内信,我会尽快回复. (34)gridx gridx系列插件并

从零开始学_JavaScript_系列(17)——dojo(6)(声明一个类declare)

(71)声明一个类declare 作用: 封装一个类,然后可以通过调用这个类,来调用其类方法.   优点: ①可以继承其他类的类方法:   ②假如我们需要使用一个类的类方法,而这个类依赖于5个插件.如果正常调用的话,我们需要在每个使用这个类的js文件里,调用这5个插件.当我们使用封装时,我们只需要调用这个类即可.而调用这个类的方法很简单.   ③可以使得代码模块化,按需加载.例如,我有封装好的A类B类C类,起初我用的是A类(假设A类依赖于20个插件),然后我可能弃用A类改用B类(B类使用与A类不

从零开始学_JavaScript_系列(14)——dojo(7)(饼图,BorderContainer,hashchange,弹窗)

5/5更新.BorderContainer自适应在本地时正常使用的方法,请查看原文代码之前那一段话 (60)创建一个饼形图 比较简单的标签声明法:(只需要修改数据即可) ①首先,加载dojo文件和样式文件:(关于style.css,需要根据自己找到的路径修改,或者使用我从官网上找到的链接:https://dojotoolkit.org/documentation/tutorials/1.10/charting/demo/style.css) <link rel="stylesheet&qu

从零开始学_JavaScript_系列(十一)——dojo(4)(GRID表格进阶:格式化、style、数据获取、多重排序、点击事件)

如果没有阅读过gridx表格的基本运用教程,建议先阅读这篇(4天点击量已经接近5k): http://blog.csdn.net/qq20004604/article/details/51170919 里面很详细的说明了gridx表格的创建,常用模块,和基本使用. 如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo. 关于dojo的下载,请查看: https://dojo

从零开始学_JavaScript_系列(十一)——dojo(5)(GRID表格进阶:更新值,name,重置表结构/缓存,重绘表格)

如果没接触过dojo,或者是dojo的gridx控件,请查看我之前几篇博客,写的已经非常详细了 最重要的,更新grid中指定单元格的值,请拉到最后看(59) 至此,grid表格日常所需的常见功能已经基本完结.如果有其他功能需求,请评论提出. (54)获得某列的name属性 代码: grid.column(2).name(); 效果: ①获得第2+1=3列的name属性: ②这里的name属性指表头的名字,如图中红框的 补充: ③grid.column(2).width 显示本列宽度 ④grid.

从零开始学_JavaScript_系列(18)——dojo(7)(dojo中类的继承)

关于声明及封装一个类,请查阅我的上一篇博客: http://blog.csdn.net/qq20004604/article/details/51456809 (72)继承一个类 在(71)的基础上,我们继续. 我们之前声明了一个类add,那么计算时,仅仅只有add显然是不够的.我们还需要minus(减去). 那么我们重新建一个文件minus,然后把add的内容复制过来,再给他加上减法功能,然后调用minus这个文件(像71那样),声明一个这样的实例? 显然太麻烦了.   这个时候,我们就需要用