ES6对Function函数类型升级优化
优化部分
箭头函数(核心)
-
箭头函数内的
this
指向的是函数定义时所在的对象,而不是函数执行时所在的对象。ES6中函数里的this
总是指向函数执行时所在的对象,这使得很多情况下this的指向变得难以理解,可以归结为语言层面的bug之一。箭头函数优化了这一点,它的内部没有自己的this,这样就导致了this总是指向上一层的this,如果上一层还是箭头函数,则继续向上指,直到指向有自己的this的函数为止,并作为自己的this; -
箭头函数不能用作构造函数,因为没有
this
,无法实例化; -
由于箭头函数没有this,所以箭头函数内也不存在
arguments
对象(可以用扩展运算符...代替)
函数默认赋值
在ES6之前,函数的形参是无法给默认值的,只能在内部通过变通方法实现,ES6以更简洁的方式进行函数的默认赋值。
//ES5 function add(x,y){ const a=x||'请输入数字', b=y||'' return a+b } //ES6 function add2(x='请输入数字',y=''){ return x+y } console.log(add(1,2)) console.log(add()) console.log(add2(1,2)) console.log(add2())
升级部分:
ES6新增了双冒号运算符,用来取代以往的bind,call,和apply。(浏览器暂不支持,Babel已经支持转码)
foo::bar; // 等同于 bar.bind(foo); foo::bar(...arguments); // 等同于 bar.apply(foo, arguments); 复制代码
标签:Function,ES6,bar,函数,箭头,console,foo From: https://www.cnblogs.com/songsong072/p/16718731.html