To strojopisem šipka definice?

hlasů
2

Napsal jsem takový objekt doslovný na stroji:

var object = {
    message: Say,
    say: () => {
        return this.message;
     }
};

A mám takový generovaný JavaScript:

var object = {
    message: Say,
    say: function () {
        return _this.message;
    }
};

By neměla být taková linie před návratem prohlášení:

 var _that = this;

jak jsem pomocí šipky výraz funkce?

Položena 10/10/2012 v 00:00
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

=>Je trochu nebezpečí tady proto, kriticky, že se váže thisk obklopující rozsah jethis . Ve správném generování kódu se var _this = this;linka jede nad objektem doslovného a vaše sayfunkce prostě vrací undefined.

Jste jen někdy chtít použít thisve =>výrazu, pokud skutečně chtějí odkazovat na thiskteré bude přítomen v rozsahu ohradní. V tomto konkrétním případě, nemáte (chcete vnitřní prostor this, tedy objektu doslovný sobě).

Odpovězeno 10/10/2012 v 00:25
zdroj uživatelem

hlasů
2

Máte pravdu. Je to chybí:

var _this = this;

To se objevil po propuštění (0,8) a je v současné době stanovena na větvi vývojáře.

Poznámka: Také myslím, že bys chtěl psát

var object = {
    message: "Say",
    say: function () {
        return () => this.message;
    }
};

která se bude tisknout Vlastně říkat, když je to běh. Viz: http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax

Odpovězeno 10/10/2012 v 00:03
zdroj uživatelem

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