Javascript数组命名状态不适用于谷歌浏览器

这个问题在这里已经有了答案:

  • 简单的Javascript数组初始化在Chrome 2的答案中不起作用
  • JavaScript关闭如何工作? 88个答案

  • 这个问题已经在这里解答。

    <html>
        <body>
            <script>
                function test(){
                    var array = [1, 2, 3];
                    document.write("Type of [" + array + "] : " + (typeof array) + "<br />");
                    document.write("Value of array.length : " + array.length + "<br />");
    
                    document.write("<br /><br />");
    
                    var status = [1, 2, 3];
                    document.write("Type of [" + status + "] : " + (typeof status) + "<br />");
                    document.write("Value of status.length : " + status.length + "<br />");
                }
    
                test();
                </script>
        </body>
    </html>
    

    如果您尝试使用上面提供的代码,则它会按预期工作,因为变量状态的范围仅限于方法状态的本地范围。 在你的示例中,变量的范围是全局的(范围是窗口)。


    问题是,在Chrome中, window (全局对象)具有status属性,由于某些原因,Chrome似乎指的是您的status变量。 将status重命名为其他任何内容,比如myStatus ,都会给你预期的结果。


    在JavaScript中,我认为你想要:

    var array = new Array(1, 2, 3);
    
    链接地址: http://www.djcxy.com/p/1489.html

    上一篇: Javascript array named status not working in google chrome

    下一篇: How does JavaScript closure work in the following example?