3

(申し訳ありませんが、thisjavascript の別の質問です。)

以下のコードがありますが、最後の呼び出しで「これ」が何を表しているのか疑問に思っています-ウィンドウまたはバード?

var Bird = (function () {
    Bird.name = 'Bird';

    function Bird(name) {
        this.name = name;
    }

    Bird.prototype.move = function (feet) {
        return alert(this.name + (" flew" + feet + "ft."));
    };

    return Bird;

}).call(this);
4

4 に答える 4

7

さて、親スコープがないと仮定すると、window

編集: 例を参照してください: http://jsfiddle.net/Umseu/1

于 2012-04-26T16:20:12.560 に答える
5

おそらく、特別な意味windowを与える特定のコンテキストではないためです。this

于 2012-04-26T16:20:01.123 に答える
3

窓。.call(this)鳥の中には書かれていません。「Bird」「constructor」を返す匿名関数を呼び出すだけです。

于 2012-04-26T16:20:13.643 に答える
1

console.log(this)無名関数の最初の行で呼び出します。スコープを返しwindowます。

于 2012-04-26T16:22:37.433 に答える