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

86apsect

模块: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方法的返回值的。

 

上一篇:错误:每个配置文件中只允许存在一个 元素,并且,如果存在该元素,它还必须是根 元素的第一个子元素在浏览器中查看Default.aspx这个网页,出现如下错误: 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误消息:


下一篇:感觉都是用于JS取参数值,没什么区别...