class Start {
construcotr(uname) {
this.uname = uname;
}
}
var lii = new Start('lii');
通过Class创建类。类名习惯性首字母大写
类里有一个constructor函数可以,通过这个函数接受传过来的参数,同时返回实例对象。
constructor函数只要new生成实例就会自动调用这个函数,如果我们自己不写 ,类也会自动生成这个函数。
生成的实例new不能省略
最后要注意语法规范,创建类,类后面不要加小括号,生成实例类后面要加小括号,传递参数。
继承(super关键字用于访问和调用父类上的函数,可以调用父类的构造函数,也可以调用父类的普通函数)
class Start {
constructor(x, y) {
this.x = x;
this.y = y;
}
//类里面方法
sum() {
console.log(this.x + this.y)
}
}
//继承
class Son extends Start {
//调用父类的构造函数
constructor(x, y) {
super(x, y)
}
};
var son = new Son(1, 2);
son.sum();
继承中,如果实例化子类的一个方法,先看子类中有没有,有就调用,没有就去看其父类有没有,有则调用。
class Father {
say() {
return '我是爸爸';
}
}
class Son extends Father {
say() {
//super.say() ;调用父类中的普通函数
console.log(super.say() + '的儿子');
}
}
var son = new Son();
son.say();
class Start {
constructor(x, y) {
this.x = x;
this.y = y;
}
//类里面方法
sum() {
console.log(this.x + this.y)
}
}
//继承
class Son extends Start {
constructor(x, y) {
//利用super调用父类函数的构造函数
//super必须子啊子类this之前调用
super(x, y);
this.x = x;
this.y = y;
}
//子类自己的函数方法
substract() {
console.log(this.x - this.y);
}
};
var son = new Son(2,1);
son.sum();//输出1
在ES6中类没有变量提升,必须先定义类,才能通过类去实例化对象
类里的共有的属性和方法必须用this使用.