js中call、apply、bind的区别
程序员文章站
2022-04-16 16:10:52
...
在 javascript 中,call、apply、bind 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。
js中call、apply、bind的区别
call、apply、bind三者的区别,可以通过下面这个例子来看。
var obj = { x: 81, }; var foo = { getX: function() { return this.x; } } console.log(foo.getX.bind(obj)()); //81 console.log(foo.getX.call(obj)); //81 console.log(foo.getX.apply(obj)); //81
三个输出的都是81,但是注意看使用 bind() 方法的,他后面多了对括号。
也就是说,区别是,当你希望改变上下文环境之后并非立即执行,而是回调执行的时候,使用 bind() 方法。而 apply/call 则会立即执行函数。
总结一下:
apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;
apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文;
apply 、 call 、bind 三者都可以利用后续参数传参;
bind 是返回对应函数,便于稍后调用;
apply 、call 则是立即调用 。
本文来自 js教程 栏目,欢迎学习!
以上就是js中call、apply、bind的区别的详细内容,更多请关注其它相关文章!
上一篇: J2EE是什么
下一篇: php如何实现全路径无限分类导航(代码)
推荐阅读
-
call和apply的区别是什么(apply的用法和搭配)
-
JavaScript中的this,call,apply使用及区别详解
-
js中call()和apply()改变指针问题的讲解
-
Node.js 中exports 和 module.exports 的区别
-
微信小程序 image组件binderror使用例子与js中的onerror区别
-
js的继承方法小结(prototype、call、apply)(推荐)
-
javascript中call apply 与 bind方法详解
-
js获取元素坐标位置(js中var和let的区别)
-
js中innerText/textContent和innerHTML与target和currentTarget的区别
-
jQuery中bind,live,delegate与one方法的用法及区别解析