2016-09-08 1 views
0

ich Typoskript lerne, habe in einem der Thema „Funktionen“ stuck(() => {}) statt der Ausdruck JavaScript-Funktion

Wo i Lambdas durch das Unterthema gegangen und mit diesen

hier, wenn ich mit dem normalen Funktion Ausdruck im tat Fehler immer

let deck = { 
    suits: ["hearts", "spades", "clubs", "diamonds"], 
    cards: Array(52), 
    createCardPicker: function() { 
     return function() { 
      let pickedCard = Math.floor(Math.random() * 52); 
      let pickedSuit = Math.floor(pickedCard/13); 

      return {suit: this.suits[pickedSuit], card: pickedCard % 13}; 
     } 
    } 
} 

let cardPicker = deck.createCardPicker(); 
let pickedCard = cardPicker(); 

alert("card: " + pickedCard.card + " of " + pickedCard.suit); 

, aber wenn ich den Pfeil Syntax (() => {}) statt dem JavaScript-Funktion Ausdruck seiner adaequat und ich bin geting Alarm

let deck = { 
     suits: ["hearts", "spades", "clubs", "diamonds"], 
     cards: Array(52), 
     createCardPicker: function() { 
      // Notice: the line below is now a lambda, allowing us to capture 'this' earlier 
      return() => { 
       let pickedCard = Math.floor(Math.random() * 52); 
       let pickedSuit = Math.floor(pickedCard/13); 

       return {suit: this.suits[pickedSuit], card: pickedCard % 13}; 
      } 
     } 
    } 

    let cardPicker = deck.createCardPicker(); 
    let pickedCard = cardPicker(); 

    alert("card: " + pickedCard.card + " of " + pickedCard.suit); 

aber die Sache ist, ich bin nicht in der Lage zu bekommen, was das Problem war zuerst mit einem

i das ging habe durch DOCS

aber nicht in der Lage deutlich

Jede Erklärung zu verstehen ist, geschätzt.

+1

wie immer der Unterschied im Begriff ist ** ** dies vielleicht die MDN Dokumentationsfunktionen für Pfeil Lese helfen? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions – toskv

+0

sicher, ich werde es durchlaufen –

Antwort

3

Sie verwenden this innerhalb der Funktion, die Sie zurückgeben. Der Wert this hängt normalerweise davon ab, wie eine Funktion aufgerufen wird.

Ein Pfeil Funktion bindet lexikalisch den this Wert aus dem Anwendungsbereich in der sie erstellt wird.

+0

so wird dies hier createCardPicker Bereich sein, wenn wir Pfeilfunktion verwenden? –

Verwandte Themen