这个看起来貌似有很多种办法吧。那,既然是写这篇文章,肯定是要写点特别之处。
通常情况下,可以使用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
是不是感觉很有意思,不明白的小伙伴建议了解一下原型链,再回来看,就会恍然大悟了。
如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!
如无特殊声明,文章均为原创,若有不正之处,万望告知。转载请附上原文地址,十分感谢!