大家知道,JS 是一门面向对象的语言,但我们平时写代码过程中,却很少用到面向对象。今天我来总结一下 JS 创建对象有几种方式。
对象字面量
let person={
firstname:"li",
lastname:"ruifeng",
age:25,
eyecolor:"black"
}
工厂模式
function createPerson (name, age, job) {
var o = new Object ()
o.name = name
o.job = job
o.sayName = () => {
alert(this.name)
}
return o
}
// 调用
var person = createPerson('lirufieng', 18, 'frontEnd')
构造函数模式
function person (name, age, job) {
this.name = name
this.age = age
this.job = job
this.sayName = function () {
alert(this.name)
}
}
// 调用
var person = new Person('lirufieng', 18, 'frontEnd')
原型模式
function Person () {}
Person.prototype.name = 'liruifeng'
Person.prototype.age = 18
Person.prototype.sayName = function () {
alert(this.name)
}
// 调用
var person = new Person()
构造函数 + 原型模式
function person (name, age, job) {
this.name = name
this.age = age
this.job = job
}
Person.prototype = {
constructor: Person,
sayName () {
alert(this.name)
}
}
以上是我总结的 JS 创建对象的几种方式,如有遗漏或不对的地方,还请指正。