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:编辑还是答案?:)@当然是前者!谢谢你的编辑。帮助我学习最佳实践!