织梦CMS - 轻松建站从此开始!

沙龙国际_沙龙国际亚洲第一品牌网上娱乐

当前位置: 主页 > 沙龙国际 >

JS "动态织入"返回值的问题

时间:2017-07-17 18:02来源:未知 作者:admin 点击:
Function.prototype.before = function(beforefn) { var _self = this; return function() { beforefn.apply(this, arguments); return _self.apply(this, arguments); } } Function.prototype.after = function(afterfn) { var _self = this; return functio
Function.prototype.before = function(beforefn) {
        var _self = this;
        return function() {
            beforefn.apply(this, arguments);
            return _self.apply(this, arguments);

        }
    }

    Function.prototype.after = function(afterfn) {
        var _self = this;
        return function() {
            **var ret = _self.apply(this, arguments);** //这一块不是应该输出2么   
            afterfn.apply(this, arguments);
            return ret;
        }
    }

    var func = function() {
        console.log(2);
    }

    func = func.before(function() {
        console.log(1);
    }).after(function() {
        console.log(3);
    })

    func();

程序输出结果是 1, 2 ,3 . 但为啥不是 12 23, 因为Function.prototype.after里面第一步就是 _self.apply() ?

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容