迭代 String.prototype

xav*_*bar 4 javascript for-in-loop

我知道for in循环可以帮助迭代对象、原型和集合的属性。

事实是,我需要迭代String.prototype,虽然console.log(String.prototype)显示完整的原型,当我这样做

for (var prop in String.prototype) {
    console.log(prop);
}
Run Code Online (Sandbox Code Playgroud)

要显示原型中元素的名称,它什么也不显示,就好像它是空的一样。

JavaScript 引擎是否隐藏了基本的原型方法,还是我做错了什么?

pim*_*vdb 5

规范说:

如果本规范未为命名属性明确指定属性值,则使用表 7 中定义的默认值。

表 7 — 默认属性值

...

[[可枚举]] 假

因此它不可枚举(与所有内置属性一样)。