Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 迭代String.prototype_Javascript_For In Loop - Fatal编程技术网

Javascript 迭代String.prototype

Javascript 迭代String.prototype,javascript,for-in-loop,Javascript,For In Loop,我知道for in循环可以帮助迭代对象、原型和集合的属性 事实上,我需要迭代String.prototype,尽管console.log(String.prototype)显示了完整的原型,但我需要这样做 for (var prop in String.prototype) { console.log(prop); } 为了显示原型中元素的名称,它不显示任何内容,就好像它是空的一样 JavaScript引擎是否隐藏了基本的原型方法,还是我做错了什么?通过for(obj中的prop)迭代

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

事实上,我需要迭代
String.prototype
,尽管
console.log(String.prototype)
显示了完整的原型,但我需要这样做

for (var prop in String.prototype) {
    console.log(prop);
}
为了显示原型中元素的名称,它不显示任何内容,就好像它是空的一样


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

通过
for(obj中的prop)
迭代无法看到本机方法


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

规范中说:

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

表7-默认属性值

[[Enumerable]]错误


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

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

@pimvdb:Darn;比我快。@Tomalak Geret'kal:编辑还是答案?:)@当然是前者!谢谢你的编辑。帮助我学习最佳实践!