-
应用场景1:使用Symbol来作为对象属性名(key)
-
应用场景2:使用Symbol来替代常量
-
应用场景3:使用Symbol定义类的私有属性/方法
详细的请看10 .理解和使用ES6中的Symbol
4.箭头函数和普通的函数有什么不同,如何判断一个函数是普通函数还是箭头函数?this的指向问题
箭头函数是普通函数的简写,可以更优雅的定义一个函数,和普通函数相比,有以下几点差异:
1、函数体内的 this 对象,就是定义时所在的对象,而不是使用时所在的对象。
2、不可以使用 arguments 对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
3、不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数。
4、不可以使用 new 命令,因为:
没有自己的 this,无法调用 call,apply。
没有 prototype 属性 ,而 new 命令在执行时需要将构造函数的 prototype 赋值给新的对象的 __proto__
new 过程大致是这样的:
function newFunc(father, …rest) {
var result = {};
result.proto = father.prototype;
var result2 = father.apply(result, rest)