文章标题

1、考察点call、apply

var a = Function.prototype.call.apply(function(a){ return a; }, [0,4,3]);
console.log(a);  // 4

分解:

(Function.prototype.call).apply(function(a){ return a; }, [0,4,3]);

注意:fun.apply(obj, args)等价于obj.fun(args)

故上面的表达式可以改为

(function(a){ return a; }).call(0, 4, 3);

call的第一个值为要绑定作用域,后面为参数

相当于,

(function(a, b){ return a; }).call(0, 4, 3); // 0为绑定的作用域(可忽略),a=4, b=3
posted @ 2017-04-26 12:00  ning0_o  阅读(117)  评论(0编辑  收藏  举报