JavaScript中的普通函数和箭头函数的区别和用法详解

JavaScript017

JavaScript中的普通函数和箭头函数的区别和用法详解,第1张

JS箭头函数和function的区别:

箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

箭头函数不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。

箭头函数不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替。

不可以使用yield命令,因此箭头函数不能用作Generator函数。

普通函数:this指向调用它的对象,没有调用就默认指向Window。

(1)一般函数中,this指向全局对象window;

(2)作为对象方法,this指向该对象;

(3)作为构造函数,this指向new的对象;

(4)使用call,apply,bind绑定时,this指向绑定的对象。

箭头函数:箭头函数本身没有this,它的this是继承而来的。箭头函数的this指向外部定义它的那个对象,默认使用父级的this,如果父级是箭头函数,就继续往上找,直到找到this的指向。