欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文章标题

程序员文章站 2022-03-29 17:54:23
...

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