JS 对象基本用法

声明对象的两种语法

let obj = {
  'name' :  '我是一个对象'
}
let obj = new Object({
  'name' : '我是一个对象'
})

1. key是字符串的情况:

key是字符串,上面的例子中name就是那个key,哪怕我没写引号,它也会自动变成字符串。

在没有加引号的情况下,如果key的值是可以计算的,它会先计算然后再转为字符串。这很烦,所以如果不是必须的,一定要记得给key加引号。

2. key是变量的情况:

let a = "name"
let obj = {
  [a]: '我是一个对象'
}

用中括号把变量名括起来就可以了,这样就会先计算括号里的变量值

3. key是symbol的情况:

let a = Symbol()
let obj = {
  [a]: '我是一个对象'
}

如何删除对象的属性

let 我 = {
  'age': 15,
  '勤劳': true,
  '勇敢':true,
  '聪慧' : true,
  '善良': true,
  '懒': false,
  '馋':false
}

哎,暴露了年龄赶紧隐藏起来

我.age = undefined//删除属性值

我怎么会有懒和馋这两种属性呢!即使是false也不该有!

delete 我.懒//删除属性
delete 我.馋//删除属性

如何查看对象的属性

下面我来给大家看一下怎么展示我的属性


JS 对象基本用法_第1张图片
没错我就是如此勤劳勇敢聪慧善良的人

这里的属性是不包含共有属性的,如果还需要查看共有属性可以使用:

console.dir(我)

或者,直接打印:

console.log(我.__proto__)



如何判断属性是不是对象的:

我们可以用下面这种方法,但是这种方法没办法知道这个属性是对象自己的还是原型

'name' in obj//没办法知道这个属性是自己的还是原型的

hasOwnProperty()方法可以帮助判断这个属性是不是对象自己的:

我.hasOwnProperty('toString')

查看单个属性值

要尤其注意方括号唷(^U^)ノ~YO

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

  1. 通过取值的方式直接赋值
我.勤劳 = false
我['勤劳'] = true
  1. 批量赋值
Object.assign(我,{坚毅:true,美丽:true,可爱:true})
  1. 共有属性能改么?
我.toString = "我改掉了没?"

”你没有”,读的时候可以读到共有属性,但是写的时候只能写在自己身上。
实在想改,就要去原型上改:

我.__proto__.toString = "我改掉了没?"

"你改掉了,但是盆友你是在玩火",没事干千万千万别改啊!

你可能感兴趣的:(JS 对象基本用法)