JS 中 call 和 apply 的理解和使用

时间:2020-12-25 17:08:18

本文受到了知乎问题 如何理解和熟练运用js中的call及apply? 的启发。

obj.call(thisObj, arg1, arg2, ...);

obj.apply(thisObj, [arg1, arg2, ...]);

作用:将 obj (即this) 绑定到 thisObj,使 thisObj 具备 obj 的属性和方法。绑定后会立即执行函数。

区别:call() 方法接受的是若干个参数的列表,而 apply() 方法接受的是一个包含多个参数的数组。

使用:

使用call方法调用函数并且指定上下文的'this'

JS 中 call 和 apply 的理解和使用

调用原生对象的方法

JS 中 call 和 apply 的理解和使用

调用父构造函数,实现继承(类似 Java 中的写法)

JS 中 call 和 apply 的理解和使用

bind 的使用

obj.bind(thisObj. arg1, arg2, ...);

把obj绑定到thisObj,这时候thisObj具备了obj的属性和方法。与call和apply不同的是,bind绑定后不会立即执行。

JS 中 call 和 apply 的理解和使用