当我更改一个函数时draw(){ //}
,draw = () => { // }
我收到一个错误,如"Uncaught SyntaxError:Unexpected token =".可能是什么原因?
小智 8
首先,你可能不应该这样做.为什么?好吧,因为箭头函数在语义上与常规函数不同.
如果将函数注册为this.draw = () => {//}
,那么class
*的每个实例都将具有该函数的重复定义,这会浪费空间并滥用某些核心语言功能(如原型继承).
draw()
另一方面,寄存器上的prototype
函数可以在所有实例之间共享draw函数的定义,甚至可以同时为ALL实例动态更改.
在你的构造函数中你可以拥有this.draw = () => {//}
,但这样做并没有多大意义。draw(){//}
应该适合你想要的任何东西。
下面,在我的示例中,我展示了两个用例,因为您可以看到使用箭头函数没有保存任何内容。
class StandardFunction {
draw() {
console.log('StandardFunction: you called draw')
}
}
class ArrowFunction {
constructor() {
this.draw = () => {
console.log('ArrowFunction: you called draw')
}
}
}
const test1 = new StandardFunction();
const test2 = new ArrowFunction();
test1.draw();
test2.draw();
Run Code Online (Sandbox Code Playgroud)
我希望你觉得这有帮助
归档时间: |
|
查看次数: |
1564 次 |
最近记录: |