首页 > 其他 > 详细

proxy改变this指向

时间:2016-09-24 23:28:55      阅读:247      评论:0      收藏:0      [点我收藏+]
var core_slice = Array.prototype.slice;

var proxy = function(context,fn) {
    var args, proxy;

    if ( typeof fn !== ‘function‘) {
        return undefined;
    }

    args = core_slice.call( arguments, 2 );
    proxy = function() {
        return fn.apply( context, args.concat( core_slice.call( arguments ) ) );
    };

    return proxy;
};


//调用1:
var show = function(){
    alert(this);
}
proxy(document,show)();  //document

//调用2:
var show = function(n1,n2){
    alert(n1*n2);
    alert(this);
}
proxy(document,show,3,4)();   //12   document
proxy(document,show)(3,4);   //12   document
proxy(document,show,3)(4);   //12   document

//调用3:
var obj = {
    show:function(n1,n2){
        alert(n1*n2)
        alert(‘obj -> show‘);
    }
};
document.onclick = proxy(obj,function(){
    this.show(3,4);
});

 

proxy改变this指向

原文:http://www.cnblogs.com/gongshunkai/p/5904352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!