一、构造函数定义类
在ES6以前,是通过定义构造函数来定义一个类;
const Person = function (name, age) {
this.name = name;
this.age = age;
}
Person.prototype = {
getUserName: function() {
return this.name;
}
}
// 创建实例对象
let person1 = new Person('zhangsan', 16)
二、class关键字定义类
class Person {
// 构造方法
constructor(name, age) {
// 属性
this.name = name;
this.age = age;
}
// 实例方法
getUserName() {
return this.name;
}
}
let person1 = new Person('zhangsan', 16)
三、class的内涵
let person1 = new Person('zhangsan', 16)
console.log(person1);

从上述结果看出,
class
定义的类与构造函数
定义的类没有区别;
只是class
类中定义的方法,会加入到该类的原型(prototype
)中;
class
可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class
写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已;
网友评论