2017-06-01 18 views
2

私は非常に多くの "this"を持っています。コード内で:"this"のコードリファクタin function

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

は、私のような何かを行うことができる方法:

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

を、よりきれいなコード

ある
+2

この私の知る限りを行うにはまさか、あなたは 'T' 'へthis'のエイリアスを作成できかかわら:すべての私は、変数のための新たな宣言を推奨し、必要に応じて、あなたのコードに配置して、コメントを残してすべてで

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()); 

長さを減らす。 (あるいは、クラスの代わりにクロージャを使用してください) – Gerrit0

+1

'' {{value2、value10} = this;} 'という構造化構文を使用して、複数の値を1行にスコープで取り込むことができます。しかし、どの割り当てももちろん「これに」影響しません。 – vu1p3n0x

+0

まあ、本当の['with'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with)というキーワードがありますが、それを使うことに対して強い引数があります](http://yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/) – Saravana

答えて

0

この例は、役立ちますが、ちょうどよりlegiable何かにローカル変数を宣言するかどうかわかりませんこの例では、私はconst食品= this.foodsのためにこのようにしました。 LOLはそれほど良くないが、これよりも優れている。paramsの食べ物。 D