一. 箭头函数
箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或 new.target。这些函数表达式更适用于那些本来需要匿名函数的地方,并且它们不能用作构造函数。
传统函数与箭头函数的对比
传统函数:
function foo(){}
let foo=function(){}
箭头函数
let foo=()=>函数执行代码
问题 : 带有参数及返回值的箭头函数如何定义?
答 :
传统
function foo(num){
return num;
}
箭头函数:
let foo=num(形参)=>num(返回值);
多个参数甚至多条函数执行体的结构
let foo = (a,b) => {let c=100;console.log(a+b+c)};
注意:多个参数需要使用括号,多个函数执行体需要使用大括号
箭头函数使用时需要注意的 :
-
箭头函数中this取决于函数的定义,而不是调用
-
nodejs环境下this表示函数所有普成员
-
箭头函数不可以使用new
-
箭头函数不可以使用argument获取参数
二.类与继承
在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。
class 的本质是 function。
// 匿名类
let Example = class {
constructor(a) {
this.a = a;
}
}
// 命名类
let Example = class Example {
constructor(a) { //实例
this.a = a;
}
}
//实例的语法直接可以写在类的内部
// 方法的语法结构: 方法名称(){方法体}
// 在实例方法的内部的this是实例对象自己
// 在使用ES6中的class模拟对象时 类的内部每一个成员之间不能使用逗号
注意 : ES6创建的类,不允许直接调用,在ES5中,构造函数是可以直接运行的,
但在ES6中不行,转码的构造函数中有_classCallCheck语句防止代码直接运行