
回复
春节不停更,此文正在参加「星光计划-春节更帖活动」
箭头函数不会取代普通函数!就像flexbox和gridbox的出现并没有完全取代float布局。本文主要介绍几个不使用箭头函数的场景。
假设有一个按钮,当点击按钮的时候,会变成绿色。
如果我们使用箭头:
当我们点按钮,会直接报错:
提示我们在this上找不到toggle。在肩头函数上输出this,会发现,此时的this是window对象。this并没有指向button。
我们将箭头函数改成普通函数。
此时this指向button,并且button变成绿色:
我们有一个对象,它内部有一个函数,可以用来给变量赋值。
当我们执行user.changeName(),希望改变name,但是并没有。
将箭头函数替换成普通函数。可以成功修改name的值!
我们定义一个User类。
我们通过User类,创建user。
输出user可以看到,name和age成功赋值。
下面我们在User.prototype添加一个箭头方法。
当我们使用user调用consoleUser并没有输出结果。
将箭头函数修改成普通函数:
上面的几个场景,都有this有关,这个场景是跟函数的arguments参数有关。
定义一个箭头函数:
调用此函数
此时直接报错,提示arguments没有定义。
当修改为普通函数:则可以正常输出