js JavaScript 对象属性特征 访问器 set get setter getter 红宝书第四版

参考地址

https://zh.javascript.info/property-accessors

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects#%E5%AF%B9%E8%B1%A1%E5%92%8C%E5%B1%9E%E6%80%A7

 

其他

 1、https://www.cnblogs.com/luoyihao/p/12228813.html    增加了点原型链的说明,

不过重点在于表达的意思是,

原型上通过defineProperty定义的getter函数,属性名z, 恒返回1 ,在实例化后不能被修改,

当然了,因为defineProperty定义的属性,configurable为false

 

 2、看到有个说法是,“将对象属性与函数进行绑定,当属性被访问时,对应函数被执行”

一、咬文嚼字

不知道小白有没有和我一样的困惑

setter getter  与 [[Get]] [[Set]]  与 访问器属性的关系 ?

肤浅的研究了一下  

 

 

 

     感觉书上有个地方写错了

 

1、“必须使用      Object.defineProperty()”  这句话是有问题的

2、使用  getOwnPropertyDescriptor打印属性的特性,可以看到,Get ----> get ,Set ----> set 都是小写

3、 getter函数、setter函数可能是一种宏观上、通俗的、通用的的叫法,

       代码里需要写明的、写出来的、明确的是 set  、get 关键字

 

在线代码测试地址  https://stackblitz.com/edit/js-nujtyv

涉及两种定义方式

 

 注意直接定义和通过defineProperty定义下面的,特性值的true or false

 

 

 还有后续......  

 

 

-------------------------------------------------------------------------------------------

 根据红宝书第四版整理 

ECMA-262 使用一些内部特性描述属性的特征

必须使用      Object.defineProperty()”  这句话是有问题的,截图未修改

 

 

posted @ 2022-04-07 18:11  hjswlqd  阅读(124)  评论(0编辑  收藏  举报