ES6的类与继承,箭头函数
程序员文章站
2023-12-21 13:23:52
...
class Person{
//类的构造函数,在new Person的时候自动进行调用;
//构造函数的作用:用于对实例进行初始化;
constructor(name,age){
this.name=name;
this.age=age;
}
say(){
console.log(this.name);
}
}
var person=new Person('张三',23);
person.say();//张三
//类的继承
class Student extends Person{
constructor(name,age,id){
super(name,age);
this.id=id;
}
var stu=new Student('haha',18,1002);
console.log(stu.id);
在class中定义属性并向外提供接口
class Student extends Person{
constructor(name,age,id){
super(name,age);
this.id=id;
}
get tall(){//
return this.name;
}
set tall(value){
return this.name=value;
}
}
var stu=new Student();
// console.log(stu.tall);//undefined
stu.tall=178;
console.log(stu.tall);//178
注意:ES6中创建的类(对象)是不允许直接调用
ES5中构造函数可以直接运行
j箭头函数
// let fun1=()=>console.log('hello');
//传递一个参数的时候
//let fun1=(p)=>return p;//等价于下方
let fun1=p=>p;
var s=fun1(23);
console.log(s);//23
//若定义多个参数或者多个函数体
let fun2=(p)=>{let num=10;return num;}
let n=fun2();
console.log(n);//10
箭头函数的遍历
arr.forEach(function(element,index){});
let arr=[1,3,5,7];
arr.forEach((element,index)=>{console.log(element,index);});
/* 1 0
3 1
5 2
7 3*/
注意:函数中this取决于函数定义,而不是函数调用
function fun3(){
console.log(this);
}
fun3();//返回 nodejs环境中的所有成员
//可以改变this指向
function fun4(){
console.log(this);
}
fun4.call({num:10});//this={ num: 10 }
//注意:箭头函数不可new
不可以使用arguments获取参数列表(结果并没有报错,而是返回一个对象列表,但存放数据的成员为空),但是可以使用rest代替
//用剩余参数rest实现;
let fun6=(...rest)=>{console.log(rest)};
fun6(123,4,6);//获取参数列表[ 123, 4, 6 ]