ES6,新增语法形式class类,是一种新的定义构造函数语法,作用和原理与ES5语法相同,只是格式和书写不同。
ES5的构造函数有一些问题,最大的问题,就是定义 prototype 是在函数之外定义的,调用构造函数,生成实例化对象,一定要在定义 prototype 之后。否则生成的实例化对象,只有属性没有函数方法。逆战班
<script>
// ES5和ES6语法的对比
// 1,ES5语法
function Fun1(name,age){
this.name = name;
this.age = age;
}
Fun1.prototype.f1 = function(){
console.log(this.name , this.age);
}
// 2,ES6语法 class
class Fun2{
constructor(name,age){
this.name = name;
this.age = age;
}
f2(){
console.log(this.name , this.age);
}
}
const obj1 = new Fun1('张三',18);
const obj2 = new Fun2('李四',20);
console.log(obj1);
console.log(obj2);
</script>