HAM*_*ALI 4 javascript reactjs
两者的任务是不同的。两者之间有区别还是相等?
第一的
onClick(){
return (
<div></div>
)
}
Run Code Online (Sandbox Code Playgroud)
第二
const onClick= ()=> {
return(
<div></div>
)
}
Run Code Online (Sandbox Code Playgroud)
ES5 函数
\n此类函数不与当前上下文绑定,需要手动绑定,如果不绑定该函数,this
则该函数在根据执行上下文执行该函数时会自行寻找绑定。
this.onClick = this.onClick.bind(this);\n
Run Code Online (Sandbox Code Playgroud)\nonClick() {\n return <div></div>;\n}\n
Run Code Online (Sandbox Code Playgroud)\nES6 函数
\n简单地称为箭头函数,在箭头函数中没有绑定,因此根据执行上下文,关键字this
没有影响this
onClick = () => {\n return <div></div>;\n}\n
Run Code Online (Sandbox Code Playgroud)\n执行上下文如何影响?
\n如果函数与任何其他实例(对象)绑定,则 Es5 函数在执行时的行为会有所不同,然后引用this
该实例,如果没有绑定,则this
关键字引用其父范围。
setTimeout 在全局执行上下文中执行,回调函数es5Function
未绑定到任何实例,this
函数中的关键字将引用其父作用域,在我们的例子中window
this.onClick = this.onClick.bind(this);\n
Run Code Online (Sandbox Code Playgroud)\r\n用作函数构造函数
\n另一个简单的区别是我们不能使用箭头函数作为函数构造函数
\n问题是为什么?
\n当我们使用函数构造函数(带关键字)创建对象时new
,函数this
默认返回关键字,每次都会引用一个新的内存位置。
如此简单的结论
\nthis
Es5 函数在与关键字一起使用时有它自己的功能new
,因此默认返回它[function name] is not a constructor
(因为箭头函数没有\xe2\x80\x99t 有自己的this
)onClick() {\n return <div></div>;\n}\n
Run Code Online (Sandbox Code Playgroud)\r\n 归档时间: |
|
查看次数: |
135 次 |
最近记录: |