每天一点前端note

36 阅读1分钟

bind/apply/call

var a =  {
    name:'szx',
    fn:function(arg1,arg2){
        console.log(this.user);
        console.log(arg1+arg2);
    }
}
var b = a.fn

var c = b.bind(a)(1,1) // 1、bind用法,需要回调执行
b.apply(a,[1,1]) // 2、apply用法
b.call(a,1,1) // 3、call用法

练习

定义一个 log 方法,让它可以代理 console.log 方法

function log(){
    var args = Array.prototype.slice.call(arguments); //arguments伪数组,转化为标准数组
    args.unshift('(app)');
    console.log.apply(console, args);
};
log("hello","world"); //(app) hello world