相关疑难解决方法(0)

你能绑定箭头功能吗?

我已经尝试了一段时间的ES6,我只是遇到了一个小问题.

我真的很喜欢使用箭头功能,只要我能,我就会使用它们.

但是,看起来你无法绑定它们!

这是功能:

var f = () => console.log(this);
Run Code Online (Sandbox Code Playgroud)

这是我想要将函数绑定到的对象:

var o = {'a': 42};
Run Code Online (Sandbox Code Playgroud)

这里是我会怎么绑定fo:

var fBound = f.bind(o);
Run Code Online (Sandbox Code Playgroud)

然后我可以打电话fBound:

fBound();
Run Code Online (Sandbox Code Playgroud)

哪个会输出这个(o对象):

{'a': 42}
Run Code Online (Sandbox Code Playgroud)

凉!可爱!除了它不起作用.它不输出o对象,而是输出window对象.

所以我想知道:你能绑定箭头功能吗?(如果是这样,怎么样?)


我在Google Chrome 48和Firefox 43中测试了上面的代码,结果是一样的.

javascript function ecmascript-6

104
推荐指数
6
解决办法
4万
查看次数

在响应onClick事件时绑定'this'与箭头函数

所以我正在努力学习反应,并.bind(this)在构造函数中与理解混淆了一点.但是我想我现在明白了,只是想知道为什么我会在onClick中使用它与箭头函数.见下面的代码:

绑定方法确保eventClick函数中的'this'引用该类

Class Click extends react.Component {
  constructor(props) {
   super(props)
   this.clickEvent = this.clickEvent.bind(this);
  }

  render = () => (
    <button onClick={this.clickEvent}>Click Me</button>
  )

  clickEvent() {console.log(this)} // 'this' refers to the class
}
Run Code Online (Sandbox Code Playgroud)

但是这个方法也引用了这个类.是否有任何赞成/反对使用一个与另一个?

Class Click extends react.Component {

  render = () => (
    <button onClick={() => {this.clickEvent()}}>Click Me</button>
  )

  clickEvent() {console.log(this)} // 'this' refers to the class
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

14
推荐指数
2
解决办法
5309
查看次数

标签 统计

javascript ×2

ecmascript-6 ×1

function ×1

reactjs ×1