从零开始学_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方法的返回值的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值