1.声明对象的两种语法
let obj = {'name':'jack','age':'18'}
let obj = new Object({'name':'ma'});
复制代码
一般都写第一种,第二种是正规的写法
{}这叫做对象字面量,new Object()则是使用构造器函数
对象字面量的声明方式比构造器函数更加方便
所以在JS中建议以对象字面量的声明方式优先
2.如何删除对象的属性
delete obj.name或者 delete.obj['name']
复制代码
3.如何查看对象的属性
查看对象所有属性:
查看自身所有属性:Object.keys(obj);
查看自身属性+共有属性:console.dir(obj);
也可以用Object.keys(obj),obj.__proto__依次打印出自身属性+共有属性
复制代码
查看对象某一个属性:
let obj = {'name':'jack','age':'18'}
正常查看方式:obj.name或者obj['name'],这里的name指的是字符串
obj[name]查看的的不是obj对象里面的name而是 let name = 'lucy' 中的变量名name,这里的name指的是变量,obj[name]等价于obj['lucy']
复制代码
4.如何修改或增加对象的属性
let obj = {'name':'jack','age':'18'}
修改自身属性方式:obj['name'] = lucy或者obj.name = lucy
批量修改自身属性方式:Object.assign(obj,{'name':'lucy','age':'20'})
修改共有属性方式:obj.__proto__['toString'] = 'xxx' 或者Object.prototype['toString'] = 'xxx',如果要改推荐使用第二种
修改原型:obj.__proto__ = common或者let obj = Object.create(common),如果要改推荐使用第二种
所有porto的代码都是不建议修改的,会出问题
添加属性:同修改一样,如果没有则直接添加一个新的属性
复制代码
5.’name’ in obj和obj.hasOwnProperty(‘name’) 的区别
‘name’ in obj检测自身及其原型是否有这个属性存在
obj.hasOwnProperty(‘name’)检测是自身独特的属性还是共有属性
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END