JS 对象基本用法

声明对象的两种语法

主要有以下两种方法:

1. var a = 1
2. let a =2

读取对象的方法:

var obj = {
  p: 'Hello World'
};

obj.p // "Hello World"
obj['p'] // "Hello World

如何删除对象的属性

delete命令用于删除对象的属性,但是无法删除继承的属性,删除成功后返回true。

delete obj.xxx
delete obj['xxx']

上面代码中,delete命令删除对象obj的xxx属性。删除后,再读取xxx属性就会返回undefined,而且Object.keys方法的返回值也不再包括该属性。

注意,删除一个不存在的属性,delete不报错,而且返回true。

如何查看对象的属性

查看对象的属性,可以用 Object.keys方法。对于单个属性,查看对应的值,直接可以obj.key

var obj = {
  key1: 1,
  key2: 2
};

Object.keys(obj);
// ['key1', 'key2']

// 读取某个属性值
obj.key1
// 1

如何修改或增加对象的属性

  • 可以对对象的属性重新赋值。
let obj = {name: 'frank'} // name 是字符串
obj.name = 'frank' // name 是字符串 obj['name'] = 'frank' 
obj[name] = 'frank' // 错,因 name 值不确定
obj['na'+'me'] = 'frank' let key = 'name';
obj[key] = 'frank' let key = 'name';
obj.key = 'frank' // 错 因为 obj.key 等价于 obj['key']
  • 也可以批量赋值
Object.assign(obj, {age: 18, gender: 'man'}) 

'name' in obj和obj.hasOwnProperty('name') 的区别

  • obj.hasOwnProperty('name') 可以判断自身是否拥有属性名为'name'的属性,不包含隐藏属性。
  • 'name' in obj 可以用于判断自身是否拥有或有继承过一个属性名为 'name'的属性,包含隐藏属性。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容