JS 中 call 和 apply 的理解和使用


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

 

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

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

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

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

 

使用:

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

 

调用原生对象的方法

 

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

 

bind 的使用

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM