在js中创建一个类

这个看起来貌似有很多种办法吧。那,既然是写这篇文章,肯定是要写点特别之处。

通常情况下,可以使用es6的class,或者使用es5,可以按照如下的方法来创建新类。

function Person(name) {
  this.name = name
}

Person.prototype.sayHello = function() {
  return 'hello world'
}

将上面这个创建方式变通一下,我们还可以这样写

const Person = Object.assign(function() {
    if (this instanceof Person) {
      Object.assign(this, ...arguments)
    } else {
      return new Person(...arguments)
    }
  }.prototype, {
    sayHello() {
      return 'hello word'
    }
  }
).constructor

调用一下

const person = Person({ name: 'leevare' })
console.log(person.name)
console.log(person.sayHello())

输出结果

leevare
hello word

是不是感觉很有意思,不明白的小伙伴建议了解一下原型链,再回来看,就会恍然大悟了。

如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注