使用forEach枚举属性和值

Enumerating properties and values using forEach

本文关键字:属性 枚举 forEach 使用      更新时间:2023-09-26

以下代码不枚举属性&网页上CCD_ 1构造函数的值。

<!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的参数有问题吗?

不,参数很好,您有一个额外的}右括号。

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来显示输出。

使用Object.getOwnPropertyNames(Array);将是更好的

但是如果要坚持你的方法那么:

 window['Object']['getOwnPropertyNames'] (window['Array'])['forEach'](function(val){
                  console.log(val);
                });

您有一个额外的}

  1. 你的代码中有一个额外的右大括号,当你修复代码的缩进时,你可以更容易地看到:

        }
    </script>
    
  2. 您可以直接使用窗口对象,不需要window['propertyName']

    window['Object']['getOwnPropertyNames'](...)
    // is the same as
    Object.getOwnPropertyNames(...)
    
  3. 您可能希望使用Array0对返回的结果调用方法,而不是['forEach']:

    Object.getOwnPropertyNames(window).forEach(function (propName) {
        console.log('In global window scope: ', propName);
    });