繁体   English   中英

迭代String.prototype

[英]Iterate over String.prototype

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

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

for (var prop in String.prototype) {
    console.log(prop);
}

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

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

规范说:

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

表7 - 默认属性值

...

[[可枚举]]假

所以它不是可枚举的(与所有内置属性一样)。

像其他人所说的那样,String.prototype中的所有属性都是不可枚举的。 要获取所有属性的列表,包括非枚举,请使用Object.getOwnPropertyNames() (仅限较新的浏览器)

通过for(prop in obj)迭代不可见本机方法。

循环浏览内置对象时,可以找到属性。 在这种情况下,页面使用自定义方法扩展了原型。 框架(例如jQuery)通常以这种方式修改内置对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM