1.对象的创建
(1)字面量
obj={} console.log(obj) //{}
obj={ name:'zhangsan', age:15, sayHi:function(){ console.log('大家好,我是'+this.name) } } console.log(obj) //{name: "zhangsan", age: 15, sayHi: ƒ} obj.sayHi() //大家好,我是zhangsan
(2)构造函数创建对象
var obj = new Object() console.log(obj) //{}
var obj = new Object({name:'张三',age:12}) console.log(obj) //{name: "张三", age: 12}
(3)工厂函数创建对象
function createPerson(name,age){ var obj={} obj.name=name; obj.age=age; obj.sayHi=function(){ console.log('大家好,我是'+this.name) } return obj } var ls=createPerson('ls',19) console.log(ls) //{name: "ls", age: 19, sayHi: ƒ} ls.sayHi() //大家好,我是ls
(4)自定义构造函数创建对象
function Person(name,age){ this.name=name; this.age=age; this.sayHi=function(){ console.log('大家好,我是'+this.name) } } var ls=new Person('ls',19) console.log(ls) //Person {name: "ls", age: 19, sayHi: ƒ} ls.sayHi() //大家好,我是ls
new做的四件事情:
(i)创建了一个新对象
(ii)this指向了这个新对象
(iii)执行构造函数(给对象添加属性和方法)
(iv)返回了一个新的对象
构造函数的作用:
(i)给对象添加属性值方法
(ii)实例化数据
2.对象的操作
(1)对象属性的删除
var obj = {name:'张三',age:12} delete obj.age console.log(obj) //{name: "张三"}
(2)对象的取值与赋值
var obj = {name:'张三',age:12} obj.id=20015 //赋值 console.log(obj) //{name: "张三", age: 12, id: 20015} console.log(obj.age) //12
3..语法和[ ]语法
.语法 结构:对象名.属性名
var obj={ name:'zs', age:15 } console.log(obj.age) //15
[ ]语法 结构:对象名[属性名字符串]
var obj={ name:'zs', age:15 } console.log(obj['name']) //zs
var obj={ name:'zs', age:15 } var key='name' console.log(obj[key]) //zs
var obj={ name:'zs', age:15 } var key='id' obj[key]=20015 console.log(obj) //{name: "zs", age: 15, id: 20015}
4.对象的遍历
var obj={ name:'zs', age:15 } for(var key in obj){ console.log(key) //name age console.log(obj[key]) //zs 15 }
5.判断这个属性是否在对象里
结构:if(属性名字符串 in obj)
var obj={ name:'zs', age:15 } if('name' in obj){ console.log('是') } else{ console.log('不是') }
6.获取对象的所有属性
结构:Object.keys(对象名) 返回的是一个数组
var obj={ name:'zs', age:15 } console.log(Object.keys(obj)) //["name", "age"]
浙公网安备 33010602011771号