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 我.馋//删除属性

如何查看对象的属性

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


没错我就是如此勤劳勇敢聪慧善良的人

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

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 = "我改掉了没?"

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 6种基本数据类型 null undefined string number boolean symobl 5种fa...
    WlSE阅读 346评论 0 0
  • 这是一篇对JS对象基本用法的介绍的文章,所有的内容都能在MDN里面找到,我主要是介绍一些常用的知识。JS一共有7种...
    刘泽佳阅读 453评论 0 0
  • 一、声明对象的两种语法 let obj = { 'name' : 'frank' , 'age' : 18} le...
    浪味仙儿啊阅读 421评论 0 2
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,350评论 0 10
  • 内容1:声明对象的两种语法 读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。 内容2:...
    安先森_57ce阅读 271评论 0 0

友情链接更多精彩内容