脚本宝典收集整理的这篇文章主要介绍了[译]箭头函数 vs .bind(),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们实际使用中,经常用ES6的箭头函数来代替Function.prototype.bind(). 1.提取对象的方法 如果将一个对象的方法作为回调函数传入,你需要定义一个确定的this,否则它将作为一个函数来执行(this值可能是undefined, 也可能是全局对象).例如: @H_360_17@ obj.on('anEvent', console.LOG.bind(console)) 另一种解决方案就是使用箭头函数: ITle="" data-original-title="复制"> obj.on('anEvent', x => console.log(x)) 译者注: 原文评论中也提到了es7的绑定运算符, 如下: obj.on('anEvent', ::console.log) 2.this作为参数 下面的代码展示了一个小技巧:对于一些方法,你可能不需要用bind()来为回调函数绑定this,这类方法允许你在额外的参数中定义this的值..filter()就是这样一类方法: const as = new Set([1, 2, 3]); const bs = new Set([3, 2, 4]); const intersection = [...as].filter(bs.has, bs); // [2, 3] 如果说你使用了箭头函数,代码会更加清晰易读: const as = new Set([1, 2, 3]); const bs = new Set([3, 2, 4]); const intersection = [...as].filter(a => bs.has(a)); // [2, 3] 3.部分赋值 bind()允许你设定一个函数部分参数的值,你可以藉由一个已有的函数,为它设定部分参数的值,然后创建一个新的函数: function add(x, y) { return x + y; } const plus1 = add.bind(undefined, 1); 再一次,我找到了使用箭头函数简化它的方法: const plus1 = y => add(1, y); 4.拓展阅读 Currying versus partial application (with JavaScript code) Uncurrying this in JavaScript 脚本宝典总结 以上是脚本宝典为你收集整理的[译]箭头函数 vs .bind()全部内容,希望文章能够帮你解决[译]箭头函数 vs .bind()所遇到的问题。 如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。 标签:breakbreakbuttonbuttonClassconstconstconstdives6evalevalfunctionfunctionfunctionininintjavanewnewpost-format-galleryprototypereturnreturnreturnselecttexttextthistoptopundefinedundefined箭头函数箭头函数
在我们实际使用中,经常用ES6的箭头函数来代替Function.prototype.bind().
Function.prototype.bind()
如果将一个对象的方法作为回调函数传入,你需要定义一个确定的this,否则它将作为一个函数来执行(this值可能是undefined, 也可能是全局对象).例如:
this
obj.on('anEvent', console.LOG.bind(console))
另一种解决方案就是使用箭头函数:
obj.on('anEvent', x => console.log(x))
译者注: 原文评论中也提到了es7的绑定运算符, 如下:
obj.on('anEvent', ::console.log)
下面的代码展示了一个小技巧:对于一些方法,你可能不需要用bind()来为回调函数绑定this,这类方法允许你在额外的参数中定义this的值..filter()就是这样一类方法:
bind()
.filter()
const as = new Set([1, 2, 3]); const bs = new Set([3, 2, 4]); const intersection = [...as].filter(bs.has, bs); // [2, 3]
如果说你使用了箭头函数,代码会更加清晰易读:
const as = new Set([1, 2, 3]); const bs = new Set([3, 2, 4]); const intersection = [...as].filter(a => bs.has(a)); // [2, 3]
bind()允许你设定一个函数部分参数的值,你可以藉由一个已有的函数,为它设定部分参数的值,然后创建一个新的函数:
function add(x, y) { return x + y; } const plus1 = add.bind(undefined, 1);
再一次,我找到了使用箭头函数简化它的方法:
const plus1 = y => add(1, y);
Currying versus partial application (with JavaScript code)
Uncurrying this in JavaScript
以上是脚本宝典为你收集整理的[译]箭头函数 vs .bind()全部内容,希望文章能够帮你解决[译]箭头函数 vs .bind()所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。