以下代码未列举属性&网页上Array
构造函数的值。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script>
window.onload = myfunc;
function myfunc(){
window['Object']['getOwnPropertyNames'] (window['Array'])['forEach'](function(val){
document.write(val + ": " + Array[val] + "<br />" );
});
}
}
</script>
</head>
<body>
</body>
</html>
传递给forEach
的参数有什么问题吗?
答案 0 :(得分:3)
没有参数没问题,你有一个额外的}
结束括号。
window.onload = myfunc;
function myfunc(){
var x = "";
window['Object']['getOwnPropertyNames'] (window['Array'])['forEach'](function(val){
x += val + ": " + Array[val] + "<br />" ;
});
document.write(x);
}
我希望你知道document.write
将取代整个文件。此外,我在变量x
中添加了您想要打印的内容,您可以使用此x
来显示输出。
答案 1 :(得分:1)
使用Object.getOwnPropertyNames(Array);
会更好
但如果想坚持你的方法那么:
window['Object']['getOwnPropertyNames'] (window['Array'])['forEach'](function(val){
console.log(val);
});
你有一个额外的}
答案 2 :(得分:0)
您的代码中还有一个额外的大括号,当您修复代码缩进时,您可以更轻松地看到它:
}
</script>
您可以直接使用窗口对象,不需要window['propertyName']
。
window['Object']['getOwnPropertyNames'](...)
// is the same as
Object.getOwnPropertyNames(...)
您可能希望使用.forEach
为返回的结果调用方法,而不是['forEach']
:
Object.getOwnPropertyNames(window).forEach(function (propName) {
console.log('In global window scope: ', propName);
});