CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

JavaScript对象基本用法-永久免费的源码丞旭猿

声明对象的两种语法

声明对象有两种写法:

letobj={name:frank,age:18}letobj=newObject({name:frank,age:18})

第①种写法是相对简单的写法,第②种是正规的写法。注意,每对键名和值中间用冒号隔开。键名是字符串,不是标识符,可以包含任意字符。引号可以省略,但就算省略了引号键名也还是字符串。

属性名:每个key都是对象的属性名(property),使用Object.keys(obj)可以得到所有obj的key。

属性值:每个value都是对象的属性值。

如果使用变量作为属性名,例如:

letp1=nameletobj={p1:frank}=>属性名为p1letobj={[p1]:frank}=>属性名为name

意思是不加 [ ] 的属性名会自动变成字符串,加了 [ ] 的属性名会当做变量求值。值如果不是字符串,会自动变成字符串。

JS中每个对象都有一个隐藏属性,这个隐藏属性储存着其共有属性组成的对象的地址,这个共有属性组成的对象叫做原型(prototype),也是对象的根。也就是说,隐藏属性储存着原型的地址。

每个对象都有原型,而对象的原型也是对象,所以对象的原型也有原型,这个原型是null。

如何删除对象的属性

删除对象的属性有两种写法:

deleteobj.xxxdeleteobj[xxx]obj.xxx=undefined

第①种写法可以删除obj的xxx属性,第②种写法可以删除xxx的原有属性值,值会变成undefined。但http://obj.xxx===undefined 不能判定xxx是否为obj的属性。

另外,如果要查看xxx属性是否在obj中,就使用 xxx in obj ,如果是true,则在;如果是false,则不在。

如何查看对象的属性

查看对象的属性有两种写法:

Object.keys(obj)console.dir(obj)或依次用Object.keys打印出obj.__proto__

第①种可以查看自身的所有属性,第②种可以查看自身的所有属性加上共有属性。

同理,Object.values(obj)可以查看自身的所有属性值,Object.entries(obj)可以查看自身的所有属性名加属性值加共有属性。

使用obj[key] 或obj.key 可以查看单个属性名的属性值。

另外,如果要判断一个属性是自身的还是共有的,就可以使用obj.hasOwnProperty(toString)这类语句, 如果是true,则是自身的;如果是false,则不是自身的,但不一定是共有的。

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

有两种写法:

①直接赋值

obj.name=frankobj[name]=frankobj[na+me]=frankletkey=name;obj[key]=frank

②批量赋值

Object.assign(obj,{age:18,gender:man})

注意,无法通过自身修改或增加共有属性。如果要修改,则推荐使用以下代码,这就是原型链。

letobj=Object.create(common)obj.name=frankobj.age=18

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

name in obj是查看name属性是否在obj中,如果是true,则在;如果是false,则不在。

obj.hasOwnProperty(name) 是判断一个属性是自身的还是共有的, 如果是true,则是自身的;如果是false,则不是自身的,但不一定是共有的。

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容