Object
JavaScript原生提供 Object对象,JavaScript所有其他对象都继承自 Object对象,即那些对象都是 Object的实例。
Object对象的原生方法分为两类, Object本身的方法和它的实例方法。
Object构造函数
Object不仅可以当作工具函数使用,还可以当作构造函数使用,Object构造函数的首要用途就是直接通过它来生成新对象。
声明对象的两种方法
let obj = {'name': 'Nick', 'age': 20}let obj = new Object{'name': 'Nick'}注意: 键名是字符串,不是标识符,可以包含任意字符;引号可以省略,就算省略了引号,键名也还是字符串。
Object的静态方法
Object.keys()和Object.getOwnPropertyNames()
这两个方法都用来遍历对象的属性。 Object.keys方法的参数是一个对象,返回一个数组,该数组的成员都是该对象自身的所有属性名。
let obj = { name:Nick, age:18};
Object.keys(obj) //["name","age"]
Object.getOwnPropertyNames与它类似,也接受一个对象作为参数,返回一个数组,包含了该对象自身的所有属性名。
删除属性
delete obj.xxx 或者delete obj['xxx']即可删除obj的xxx属性;注意区分[属性值为undefined]和不含属性名
不含属性名'xxx' in obj === false
查看所有属性
Object.keys(obj)
查看自身+共有属性
console.dir(obj)
判断一个属性是自身的还是共有的:obj.hasOwnProperty(toString')
修改或增加对象属性
改自身 obj['name'] = 'bob'
批量改自己 Object.assign(obj, {age: 18})
改原型:let obj = Object.create(common)
总结
- 删
delete obj['name']
'name' in obj // false
obj.hasOwnProperty('name') // false - 查
Object.keys(obj)
console.dir(obj)
obj['name']
obj.name // 记住这里的 name 是字符串 ,等价于obj['name']
obj[name] // 记住这里的 name 是变量 - 改
改自身 obj['name'] = 'jack'
批量改自身 Object.assign(obj, {age:18, ...})
改原型 let obj = Object.create(common)