call apply bind区别

318 阅读1分钟

call方法和apply语法(注意:都只能给function绑定)

call:如果这个函数在非严格模式下运行,则指定为 nullundefinedthis 值会自动指向全局对象(浏览器中就是 window 对象),同时值为原始值(数字,字符串,布尔值)的 this 会指向该原始值的自动包装对象。如果没有传递第一个参数,this 的值将会被绑定为全局对象。

返回值:使用调用者提供的 this 值和参数调用该函数的返回值。若该方法没有返回值,则返回 undefined。(即使用call方法时立即执行当前函数)

注意:call()方法的作用和 apply() 方法类似,区别就是call()方法接受的是参数列表,而apply()方法接受的是一个参数数组。

apply: 调用有指定this值和参数的函数的结果。例如:var max = Math.max.apply(null, numbers);

用 apply 将数组添加到另一个数组:

var array = ['a', 'b'];
var elements = [0, 1, 2];
array.push.apply(array, elements);