前端复习专题(四)--对象

174 阅读1分钟

1.创建对象

1.1 创建Object的新实例

let p1 = new Object()
p1.name = 'lili'
p1.sayName = function () { console.log(this.name) }

1.2 对象字面量

let p1 = {
    name : 'lili',
    sayName() {
        console.log(this.name)
    }
}

1.3 工厂模式

function createPerson(name,age) {\
let p1 = new Object()\
p1.name = name\
p1.age = age\
p1.sayname = function (){\
console.log(this.name)\
}\
return p1\
}

优点:可以解决创建多个类似对象的问题

缺点:没有解决对象标识问题(即新创建的对象是什么类型)

1.4 构造函数模式

function Person(name,age) {\
this.name = name\
this.age = age\
this.sayname = function (){\
console.log(this.name)\
}\
}\
let p1 = new Person('lili',18)

没有显示的创建对象
属性和方法直接赋值给this
没有return

优点:解决对象标识问题(即新创建的对象是什么类型) console.log( p1 instanceof Person) // true

缺点:多个实例对象的同名方法不是一个Function实例 解决: 1.把函数定义在构造函数外面--缺点:混乱全局作用域 2.原型模式

1.5 原型模式

image.png 优点:在原型对象上定义的属性和方法可以被对象实例共享

相关方法

image.png

2.对象的属性:数据属性、访问器属性

image.png

image.png

3. 增强的对象语法

image.png

4. 对象解构

image.png