对象

34 阅读1分钟

对象:是js里用自定义数据的一种格式

对象 = 属性 + 方法

创建对象

字面量(推荐)

  • 语法:var 对象名称 = {键值对}
  • 键值对写法:
    • {}内部书写,【注】键值对之间使用,隔开
      • 属性名:"属性值"
    • {}外部书写:
      • obj.属性名 = "属性值"
      • obj["属性名"] = "属性值"
var obj = {
    name:"刘亦菲",
    age:20,
    say(){
        console.log(`你好!我叫${this.name}`)
    }
}
obj.say()  //你好!我叫刘亦菲
console.log(obj)  //{name: '刘亦菲', age: 20, say: ƒ}

构造函数创建对象

  • 语法:var 对象名称 = new Object()
  • 键值对写法:同上字面量在{}外部书写方式一致
var obj = new Object()
obj.name = "刘亦菲"
obj["age"] = 20
obj.say = function(){
    console.log(`你好!我叫${this.name}`)
}
obj.say()  //你好!我叫刘亦菲
console.log(obj)  //{name: '刘亦菲', age: 20, say: ƒ}

对象的增删改查

//创建一个空对象
var obj = {} 

//增
//增加属性 
obj.name = "杨超越"
obj["age"] = 20
obj["address"] = "中国"
// 增加方法
obj.say = function(){
    console.log(`你好!我叫${this.name}`)
}
console.log(obj)    //{name: '杨超越', age: 20, address: '中国', say: ƒ}

//删
delete obj.age
console.log(obj)    //{name: '杨超越', address: '中国', say: ƒ}
        
// 改
obj.address = "中国江苏省"
console.log(obj)    //{name: '杨超越', address: '中国江苏省', say: ƒ}

// 查
console.log(obj.name)   //杨超越
console.log(obj.say)    //ƒ (){console.log(`你好!我叫${this.name}`)}

数组的遍历

  • for...in
var obj = {
    name:"杨超越",
    age:20,
    say(){
        console.log(`你好!我叫${this.name}`)
    }
}
for(var key in obj){
    //key代表属性名,obj[key]代表属性值
    console.log(key,obj[key])  
}

image.png