概述:对象是一种引用数据类型。他可以存储对应的数据相关的方法(可以拥有相关的属性及对应的函数(行为))。对象里面构成是用key:value(键值对)构成的,一个对应的key对应一个value(key=不能重复的 value是可以重复的)。
1.对象的声明
//Object是所有的类和对象的父类 也就是Object是最大的对象 //第一种 var obj = { name:'jack',//对应的key是name value是jack 多个键值对使用,隔开 age:18 } //第二种 var obj = new Object() obj.name = 'jack' obj.age = 18
2.对象的属性及相关的方法访问(查询)
//第一种使用对象名.属性名 var obj = { name:'jack',//对应的key是name value是jack 多个键值对使用,隔开 age:18, sayHello:function(){ console.log('hello') } } console.log(obj.name) //jack console.log(obj.age) //18 //调用对应的sayHello方法 obj.sayHello() //第二种使用对象名[属性名字符串] var obj = { name:'jack',//对应的key是name value是jack 多个键值对使用,隔开 age:18, sayHello:function(){ console.log('hello') } } console.log(obj['name']) //jack console.log(obj['age']) //18 //调用sayHello方法 obj['sayHello']()
3.对象属性的增删改
1.增加
//使用对象名.属性名赋值 var obj = {} obj.sex = '男' //给对应的obj添加一个属性名字为sex
2.修改
//重新赋值覆盖之前的 var obj = { age:18 } obj.age = 20 //当前属性已经存在重新赋值就是修改 console.log(obj)
3.删除
//删除对应得属性 使用delete关键词 var obj = { age:18, sex:' 男' } delete obj.sex //删除对应obj的sex属性 console.log(obj); //{age:18}
4.特殊的对象 this
概述:在对象的函数内那么对应的this就指向这个对象,在外面的函数内this就指向最顶层的对window。 所有的全局变量及全局声明的函数都是属于window的(window可以被省略)
var person = new Object() person.name ='jack' person.age = 30 person.like = '泡澡' person.money = 10000 person.print = function(){ console.log(`姓名 ${this.name} 年龄 ${this.age} 爱好 ${this.like} 薪资期望 ${this.money}`);//this指向person } person.print() //在外面的函数内容 this指向对应的window function fn(){ console.log(this); } fn()//所有的全局变量及全局声明的函数都是属于window window.fn() //window可以被省略 var a = 10 console.log(window.a);