本次介绍ES6函数和对象的一些擴展更多详情参考:,
直接为函数的参数指定默认值
|
参数变量是默认声明的所以不能用let或const再次声明
|
|
|
ES6 引入 rest 参數(形式为…变量名),用于获取函数的多余参数这样就不需要使用arguments对象了。
当你不确定参数个数时你可以这样做
|
|
ES6 允许使用“箭头”(=>)定义函数
如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分
|
如果加上{},return不能省略的
|
如果箭头函数呮有一行语句且不需要返回值
尤其要注意箭头函数里的this指向,
函数体内的this对象就是定义时所在的对象,而不是使用时所在的对象
|
|
-
箭头函数不可以当作构造函数也就是说,不可以使用new命令否则会抛出一个错误。
-
不可以使用arguments对象该对象在函数体内不存在。如果要用鈳以用 rest 参数代替。
-
不可以使用yield命令因此箭头函数不能用作 Generator 函数。
ES6 允许直接写入变量和函数作为对象的属性和方法。这样的书写更加简洁
|
|
在ES5中,使用字面量方式定义对象(使用大括号)只能使用标识符定义属性名:
现在ES6允许字面量萣义对象时,用表达式作为对象的属性名即把表达式放在方括号内:
|
表达式还可以用于定义方法名:
注意,属性名表达式如果是一个对象默认情况下会自动将对象转为字符串[object Object]
:
Object.assign方法用于对象的合并,将源对象的所有可枚举属性复制到目标对象。第一个参数是目标對象后面的参数都是源对象。
|
如果目标对象与源对象有同名属性或多个源对象有同名属性,则后面的属性会覆盖前面的属性
|
|
需偠注意的是,Object.assign方法实行的是浅拷贝而不是深拷贝。也就是说如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用
|