您的位置:首页 > Web前端 > JavaScript

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

2016-07-28 18:08 423 查看
(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方法的返回值的。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: