文章目录
  1. 1. Defined
  2. 2. Main()
  3. 3. Reference

Defined

本以为重新改了那篇this的文章已经可以正常使用了, 然而react中click绑定还是没搞懂.

Main()

翻阅了一堆, 才发现是最基础的问题. 具体戳这: onclick事件绑定函数,为什么在文档里(body标签里)调用时就得加括号,在js代码里去不用? - zhihu

onclick=func <==> onclick=function() { func(); }
应该说看到这句话应该就能懂为什么了.如果还不清楚, 就看下面这个例子:

1
2
3
4
5
6
7
8
9
10
11
12
//  React 例子
render() {
return (
<div>
<input type="text" ref="myTextInput"/>
<input type="button" value="Focus the text input" onClick={this.handleClick}/>
</div>
);
}
handleClick() {
this.refs.myTextInput.focus();
}

此时this之外其实就包裹了一个function(){}, 归类为函数调用(function invocation).
function(){}会内建一个上下文,但是即使外部函数拥有该this的上下文环境,它也没有办法影响到内部的this, 所以依然会返回undefined||window

Reference

Why and how to bind methods in your React component classes?- ReactKungFu
JavaScript 原型系统的变迁,以及 ES6 class
这两篇是一开始看的, 可以当作延伸阅读了…

文章目录
  1. 1. Defined
  2. 2. Main()
  3. 3. Reference