推理,JavaScript bind()函数的用例
Reasoning & use cases for JavaScript bind() function?
在探索一些新的JavaScript东西时,我想知道JavaScript bind
函数背后的原因是什么。
我明白它的作用(传递this
的上下文),但我真的不知道什么时候使用它?
我试着通过我的一些项目,并找到bind
可以使事情更优雅的部分,但唯一的东西来远程接近是这一个(backbone.js代码):
var AlbumListView = Backbone.View.extend({
initialize: function() {
var albums = new AlbumCollection();
this.listenTo(albums, 'fetched-okay', function() {
console.log('fetch success, kick things off!');
});
albums.fetch({
success: function() {
this.trigger('fetched-okay');
}.bind(albums),
});
},
});
没有bind
,对fetch
的调用看起来像这样:
albums.fetch({
success: function() {
albums.trigger('fetched-okay');
},
});
我认为有人可能会认为第一个例子可能比第二个例子更容易理解,尽管我不相信它;-)
那么bind函数的一些实际用例是什么呢?对我来说,它似乎是一个真正特殊的利基函数。
是的,如果你已经有一个像albums
这样的变量,你可以在函数中使用,没有理由使用bind
。
然而,bind
是有用的a)当你想要bind(this)
b)当函数绑定使用this
,你不能做任何关于它。
当
function() {
this.trigger('fetched-okay');
}.bind(albums)
几乎没什么用,可以用
代替。albums.trigger.bind(albums, 'fetched-okay');
,其中trigger
方法本身是直接绑定的,并且我们根本不使用任何函数表达式
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery