在es5中我们是使用构造函数实例化出来一个对象,那么构造函数与普通的函数有什么区别呢?其实没有区别,无非就是函数名称用首字母大写来加以区分,这个不用对说对es5有了解的朋友都应该知道。
但是es5的这种方式给人的感觉还是不够严谨,于是在es6中就换成了class,就是把es5中的function换成了class,有这个单词就代表是个构造函数,然后呢对象还是new出来的,这一点并没有变化。
类的使用
从里面的代码我们可以看到除了function变成了class以外,其它的跟es5一样
class Coder{
name(val){
console.log(val);
}
}
let shuang= newCoder;
shuang.name('shuang');
类的传参
在es6中的对象的属性都是写在constructor里面,方法都是在原型身上。在这里面的代码用constructor约定了两个参数,然后用add()方法把参数相加,这个地方跟以前不太一样,所以需要多注意一下。
class Coder{
name(val){
console.log(val);returnval;
}
constructor(a,b){this.a=a;this.b=b;
}
add(){return this.a+this.b;
}
}
let shuang=new Coder(1,2);
console.log(shuang.add());
class的继承
class的继承就是用extends
class shuang extends Coder{
}
let shuang=newshuang;
shuang.name('Angel爽');
声明一个shuang的新类,用extends继承了Coder,调用里面的name方法,发现也是可以输出的。