Hiányzó _this meghatározás

szavazat
1

Van egy függvény egy tárgy, mint ez:

    connect(callback?: (connected: bool) => void) {
        $.ajax(this.url + /connect, $.extend(true, {}, this.ajaxSettings, {
            success: (data) => {
                this.errorChecker(data, (data) => {
                    if (callback != null) {
                        callback(data);
                    }
                });
            },
            timeout: this.timeout,
            error: () => {
                if (callback != null) {
                    callback(false);
                }
            }
        }));
    }

A géppel fordító úgy, hogy ez és gyárt:

        VAS.prototype.connect = function (callback) {
            $.ajax(this.url + /connect, $.extend(true, {
            }, this.ajaxSettings, {
                success: function (data) {
                    _this.errorChecker(data, function (data) {
                        if(callback != null) {
                            callback(data);
                        }
                    });
                },
                timeout: this.timeout,
                error: function () {
                    if(callback != null) {
                        callback(false);
                    }
                }
            }));
        };

Megjegyzés ezt a sort a js:

_this.errorChecker(data, function (data)

A fordító helyesen észrevette az általam használt => operátor és arra a következtetésre jutott, hogy thisaz én eredeti géppel utalni kell a szülő objektum, és nem bármi thistörténik, hogy amikor a siker callback valójában hívott. De valamilyen oknál fogva a fordító elfelejtette, hogy tartalmazza a mágikus vonal:

var _this = this;

Elején a funkciót. Ez egy bug? Vagy ez a design? Ha csak figyelmen kívül hagyja a _this / ez a dolog teljesen, én csak mondom én csinálom rosszul, de ez megy félúton van, ami elgondolkodtat, valami nincs rendben.

Frissítés : furcsa ez úgy tűnik, hogy a probléma a fordító a Visual Studio, ha lemásolják az azonos kódot a játszótér működik, mint várták.

A kérdést 08/10/2012 18:33
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Ez úgy néz ki, mint egy bogár. Meg kell nyitni a munka tétel követni ezt.

Válaszolt 08/10/2012 18:51
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more