call & apply

相同:都是把fn(即this)绑定到obj上,使obj具备了fn的属性和方法。也就是obj继承了fn的属性和方法。

区别:call接受的是连续参数,apply接受的是数组参数。

function fn(b) {
    return this.a+b
}
let obj = {"a":1};
fn.call(obj,2);     // 1+2 = 3
fn.apply(obj,[3]);  // 1+3 = 4

你可能感兴趣的:(call & apply)