Dan*_*eld 6 javascript propertydescriptor javascript-objects
我知道,你可以得到一定的财产"的属性描述对象prop的某个对象的" obj有
Object.getOwnPropertyDescriptor(obj,"prop");.我只是想知道:这些物品存放在哪里?它们是在内部存储在一个对象中还是......在其他地方 我试图在开发人员工具中找到它们,但没有运气.
除非明确请求,否则属性描述符对象不存在。它们是在您致电Object.getOwnPropertyDescriptor时临时创建的。所以下面的代码:
var foo = {bar:'foo'}
Object.getOwnPropertyDescriptor(foo, 'bar') === Object.getOwnPropertyDescriptor(foo, 'bar');
Run Code Online (Sandbox Code Playgroud)
始终评估为 false。
正如我们所看到的(代码和规范),属性描述符对象不是存储的,而是按需创建的。
writable那么, configurable, value, get, ... 属性存储在哪里set?规范不要求它们暴露给用户代码...这是 V8 PropertyDescriptor 类的 C++ 定义- 似乎每个属性都占用一个字节。
如果您想检查属性是否可写、可配置或类似,Firefox 控制台允许您这样做(但前提是属性不可写或具有 getter/setter):
