关于Chrome浏览器中的origin变量的混淆

时间:2017-11-22 04:15:09

标签: javascript html google-chrome firefox

以下代码在Chrome中无效,但可在Firefox中使用

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <main>
            <button onclick="origin.haha()">This is a test button</button>
        </main> 
        <script>
            A = {
                haha: function() {
                    alert(5);
                }
            }
        </script>

        <script>
            var origin = A;
        </script>

    </body>
</html>

当我点击按钮时,我应该会看到警告消息,但是当我在chrome中打开代码并单击按钮时,它会引发一个错误,表示origin.add不是函数,我检查它,我认为这是因为origin变量是一个内置变量,它被识别为window.origin。并且chrome不允许用户重新定义变量。

但是当我打开chrome调试控制台并输入origin.haha()时,它会显示警告信息......

这让我更加困惑,以下代码可以在chrome中使用。

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <main>
            <button onclick="testFunc()">This is a test button</button>
        </main> 
        <script>
            A = {
                haha: function() {
                    alert(5);
                }
            }
        </script>

        <script>
            var origin = A;

            testFunc = function() {
                origin.haha();
            }
        </script>

    </body>
</html>

有谁能告诉我原始变量发生了什么?为什么chrome可以在第二个代码中显示警告消息但在第一个代码中无法显示警告消息?

我希望我已经清楚地描述了这个问题......

0 个答案:

没有答案