JS对象访问器属性和数据属性

https://img2.mukewang.com/5bb03b930001d7af04000440.jpg

EAMAScript 5 定义了描述这些属性特征的各类特性,包括数据属性和访问器属性。
数据属性:该属性包含了一个数据值的位置,它包含了4个描述行为的特性:

  1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性。

  2. [[Enumerable]]:表示能否用for-in循环返回。

  3. [[writable]]:表示能否修改属性的值。

  4. [[Value]]:包含这个属性的数据值。读取属性值的时候从这个位置读,写入属性值的时候更新到这个位置,默认值为undefined。

访问器属性:包含getter和setter函数。读取访问器属性时,调用getter函数,返回有效的值;在写入访问器属性时,调用setter函数传入新值。它包含了4个特性:

  1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性。

  2. [[Enumerable]]:表示能否用for-in循环返回。

  3. [[Get]]:读取属性时调用的函数,默认undefined。

  4. [[Set]]:写入属性时调用的函数,默认undefined。

问题描述:
1.怎样区分哪个属性是访问其属性,哪个是数据属性?是通过下划线标识吗?或者说是具有setter或getter特性的属性?
2._year和year是同一个属性吗?
3.对于属性前面的下划线表示只能通过对象方法访问的属性这句话不是很理解呢,为什么需要用下划线来标识呢


ITMISS
浏览 684回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript