2017-06-01 2 views
2

Ich habe so viele "das". in Code:Code Refactor für "dies". in Funktion

calculate(){ 
    this.value1 = this.fabrika.calc(this.value2); 
    this.value4 = this.other.other_calc(this.value10); 
    // etc 
} 

, wie ich so etwas wie zu tun:

calculate(){ 
    with this{ // error 
    value1 = fabrika.calc(value2); 
    value4 = other.other_calc(value10); 
    } 
} 

ist es ziemlich Code

+2

keine Möglichkeit, dies AFAIK zu tun, wenn Sie '' this' zu t' alias könnte um die Länge zu reduzieren. (Alternativ können Sie Closures anstelle von Klassen verwenden) – Gerrit0

+1

Sie können die Destrukturierungssyntax 'let {value2, value10} = this;' verwenden, um mehrere Werte in einer Zeile in den Bereich zu ziehen. Allerdings haben alle Zuweisungen keinen Einfluss auf "das". – vu1p3n0x

+0

Nun, es gibt ein echtes ['with'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with) Schlüsselwort, aber es gibt einige [starke Argumente dagegen, es zu benutzen ] (http://yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/) – Saravana

Antwort

0

nicht sicher, ob dieses Beispiel hilft, aber nur eine lokale Variable, um etwas mehr legiable erklären wie ich in diesem Beispiel für const food = this.foods; lol nicht viel besser aber besser als das. foods in the params.

const foodMenu = { 
    foods: ['rice', 'beans', 'beef'], 
    getRandomFood: function() { 
     return() => { 
      const foods = this.foods; 
      const food_index = Math.floor(Math.random() * foods.length); 
      return foods[food_index]; 
     } 
    } 
} 

const getFood = foodMenu.getRandomFood(); 
console.log(getFood()); 

Alles in allem empfehle ich neue Erklärung für Variablen und legen Sie sie in Ihrem Code, wo notwendig und verlassen Kommentare: D