JS-类
2020-06-21 本文已影响0人
刘淘
- 使用class定义类,其实类的本质就是函数(只不过是语法糖而已,typeof返回function)
- 类可以使用constructor完成初始化,多个方法之间直接书写,不要“,”分割
- 使用new来实例化类的对象,跟函数类似,因此类其实就是对象的实例话工厂而已
- class自动将属性挂载到实例上,将方法挂载到原型上,与function保持一致
- 使用class定义的对象只可遍历属性,不可遍历方法,本质上是class修改了方法的属性特征(不可遍历)
- 使用function定义的对象都可遍历属性和方法,除非使用hasOwnProperty做限制
- 可使用Object.getOwnProertyNames()查看实例或原型各自的成员
{
class User {
constructor(name, age) {
this.name = name
this.age = age
}
show() {
console.log(`${this.name} is ${this.age} years old`)
}
}
const user = new User('xiamu', 18)
console.log(typeof User)
console.dir(User)
console.log(User === User.prototype.constructor)
console.dir(User)
console.log(Object.getOwnPropertyNames(User))
console.log(Object.getOwnPropertyNames(User.prototype))
console.log(Object.getOwnPropertyDescriptor(User.prototype, 'show'))
}
image.png