0

以下のように、JavaScript のサンプル コードがいくつかあります。ボタンがクリックされると、同じ名前のメソッドがグローバル レベルに存在する場合でも、オブジェクトxyzのdoSomethingという名前のプライベート メソッドが常に呼び出されます。JavaScript レベルで何が起こっているのかを理解しようとしています。

質問: この状況で、同じ名前のグローバル メソッドではなく、常にdoSomethingのプライベート メソッドが呼び出されるのはなぜですか?

<script>
    function doSomething() {
        alert('this is a global method available to all');
    }

    var xyz = function() {
        var x = {};
        x.FirstName = "Mike";
        x.changeSeat = function() {
            doSomething();
        }

        function doSomething() {
            alert('this is a private method');
        }

        return x;
    }();
</script>

<button type="button" onclick="xyz.changeSeat();">Private or Global method is called when same name methods exist?</button>

4

1 に答える 1