JS 中的构造函数和类

82 阅读1分钟

如何自制一个构造函数?

目标使用自制的构造函数创建一个含有 name 和 age 的对象,并且有 sayHi 和 run 方法

最终代码

JS 的构造函数的推荐写法,代码如下:
function Person(name = '匿名', age = 0) {
  const obj = Object.create(Person.共有属性);
  // 相当于 obj = {隐藏属性: Person.共有属性}
  obj.name = name
  obj.age = age
  return obj
}
Person.共有属性 = {
	constructor:Person,
  sayHi() {
    console.log(`你好,我是 ${this.name}`)
  },
  run() {
    console.log(`${this.name} 在跑步`)
  }
}

除了上面这种构造函数写法,我们还可以使用 class 写法,代码如下:
class Person {
  constructor(name = '匿名', age = 0) {
    this.name = name
    this.age = age
  }
  sayHi() {
    console.log(`你好,我是 ${this.name}`)
  }
  run() {
    console.log(`${this.name} 在跑步`)
  }
}