Javascript千面之call、apply、bind区别和使用
call、apply、bind等方法 的真正强大之处就是能够扩充函数赖以运行的作用域。 通俗一点讲,就是改变函数内部的 this 的指向 。 关于对变幻莫测的this的指向的理解,可以参考我的另一篇博文: Javascript千面之变幻莫测的this指向 ; 背景 先讲些废话吧,小伙伴们相对于call,apply,bind的区别和使用相信在网上可以搜索到很多,笔者写这篇文章的初衷纯粹是为了修改this指向的说明,也为了加深小伙伴们对this指向的理解,从而拓展出来的一片文章,关于对变幻莫测的this的指向的理解,可以参考我的另一篇博文: Javascript千面之变幻莫测的this指向 ; 后来越想越多,就越写越多,甚至还能延伸到很多继承和调用的使用场景。 1.为了修改this指向 举个例子: var aaa = { num : 10 } var obj = { num : 20 , fn : function () { console . log ( this ); }, fn1 : () => { console . log ( this ); } } obj . fn() ------> {num: 20, fn, fn1} obj . fn . call ( aaa ) ------> {num: 10} obj . fn1 . call ( aaa ) ------>