犀牛书笔记(第14章 元编程)

犀牛书笔记(第14章 元编程)

属性的特性

可枚举(可以被for/of遍历,可以被Object.keys(o) 枚举)、可写(可修改值)、可配置(可以删除属性并修改属性的特性)

数据属性:value + 可枚举/可写/可配置

访问器属性:get/set/可枚举/可配置

Object.getOwnPropertyDescriptor()

对象的可扩展能力

控制是否可以给对象添加新属性。Object.preventExtensions(o)。这个修改是不可逆的。但不影响给原型对象加新属性。

prototype特性

Object.getPrototypeOf(x)查询x的原型

x.isPrototypeOf(y): 确定x是否是y的祖先,原型链上的成员

公认符号

所谓公认符号,其实就是Symbol工厂函数的一组属性,也就是一组符号值。

Symbol.iterator, Symbol.asyncIterator,可以让对象或类把自己变成可迭代对象。

Symbol.hasInstance: 在ES6中,如果instanceof的右侧是一个有[Symbol.hasInstance]方法的对象,那么就会以左侧的值作为参数来调用这个方法,并返回这个方法的值,变成instanceof操作符的值。

Symbol.toStringTag

模版标签

反射API

代理对象

发表回复

*您的电子邮件地址不会被公开。必填项已标记为 。

*
*