3

(对不起,thisjavascript中的另一个问题。)

我有下面的代码,我想知道最后调用中的“this”代表什么——窗口还是鸟?

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”“构造函数”的匿名函数。

于 2012-04-26T16:20:13.643 回答
1

console.log(this)在匿名函数的第一行调用。即返回范围,window.

于 2012-04-26T16:22:37.433 回答