(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方法的返回值的。