- 最正规且最基本的方法但是比较麻烦
let person = new Object()
person.age = 18
person.name = "派派"
person.hello = function() {
console.log('你好我是' + this.name)
}
- 对象字面量,看起来更直观
let person = {
age: 18,
name: "派派",
hello: () => {
console.log('你好我是' + this.name)
}
}
- 工厂模式
- 缺点:person1 instanceof createPerson === false,工厂模式创建出来的对象没法标识,不知道对象的出处是哪里。
function createPerson(age, name) {
let person = new Object()
person.name = name
person.age = age
person.hello = () => {
console.log('你好我是' + this.name)
}
return person
}
let person1 = createPerson(18, "派派")
let person2 = createPerson(17, "派翠克")
- 构造函数模式(使用new来调用)
person1 instanceof createPerson === true
function Person(age, name) {
this.name = name
this.age = age
this.hello = () => {
console.log('你好我是' + this.name)
}
}
let person1 = new Person(18, "派派")
let person2 = new Person(17, "派翠克")
- class
class Person {
constructor(age, name) {
this.name = name
this.age = age
this.hello = () => {
console.log('你好我是' + this.name)
}
}
}
let person1 = new Person(18, "派派")
let person2 = new Person(17, "派翠克")