Object对象
- 在js中,万物皆是对象
- 之前在数据类型中讲过,对象有属性和方法
基本
创建
- 对象的创建有两种方法
- 常规方法
let obj = new Object()
obj.a = "a"
obj.b = 2
obj["c"] = true
logd(obj) // 返回 [object Object]
logd(JSON.stringify(obj)) // 返回 {"a":"a","b":2,"c":true}
- 简写
let obj = {"a": "a", "b": 2, "c": true}
logd(obj) // 返回 [object Object]
logd(JSON.stringify(obj)) // 返回
属性
let 对象_人 = {"姓名": "Mr_老冷", "年龄": 36, "身高": 182, "QQ": "1920712147"}
logd(对象_人) // 返回 [object Object]
logd(typeof 对象_人) // 返回 object
logd(JSON.stringify(对象_人)) // 返回 {"姓名": "Mr_老冷", "年龄": 36, "身高": 182, "QQ": "1920712147"}
方法
- 方法即
function
函数,函数也可以作为对象的一员来存在
let obj = {
姓名: "Mr_老冷",
去工作: function () {
logd("编写教程")
},
去吃饭: function (吃什么) {
logd("正在吃饭,吃的是", 吃什么)
},
去睡觉: function () {
logd("玩会手机再睡")
return "根本没睡"
}
}
logd(obj.姓名) // 返回 Mr_老冷
logd(obj.去工作()) // 返回 编写教程
// 返回 undefined
logd(obj.去吃饭("四菜一汤")) // 返回 正在吃饭,吃的是 四菜一汤
// 返回 undefined
logd(obj.去睡觉()) // 返回 玩会手机再睡
// 返回 根本没睡
- 利用这个特性,我们可以把相近的功能,封装成模块来调用,实现类似
class
类的效果
prototype 原型对象
- 在 js 中, 原型
prototype
是一个非常重要的概念,它为对象提供了继承和共享属性的机制 - 每个 js 对象都有一个与之关联的原型对象,通过原型对象,可以实现属性和方法的共享,从而减少内存占用
- 通过
new
关键字,创建对象,并使用
function 对象_人(姓名, 年龄, 身高, QQ) {
this.姓名 = 姓名
this.年龄 = 年龄
this.身高 = 身高
this.QQ = QQ
}
对象_人.prototype.去工作 = function () {
logd("编写教程")
}
对象_人.prototype.去吃饭 = function (吃什么) {
logd("正在吃饭,吃的是", 吃什么)
}
对象_人.prototype.去睡觉 = function () {
logd("玩会手机再睡")
return "根本没睡"
}
let obj = new 对象_人("Mr_老冷", 36, 182, "1920712147")
logd(obj.姓名) // 返回 Mr_老冷
logd(obj.去工作()) // 返回 编写教程
// 返回 undefined
logd(obj.去吃饭("四 菜一汤")) // 返回 正在吃饭,吃的是 四菜一汤
// 返回 undefined
logd(obj.去睡觉()) // 返回 玩会手机再睡
// 返回 根本没睡