変数の値を使ってES2015のクラスのプロパティを設定するにはどうすればよいですか?ES2015の `this。[variable value]`を設定する
このコードを考えてみましょう:
class Test {
constructor() {
this.name = "";
this.url = "";
}
//Set the options for class
setOptions(options) {
for (option in options) {
this.option = options[option]; //Option 1
this[option] = options[option]; //Option 2
}
}
}
const test = new Test();
test.setOptions({name: 'Test', url: 'www.stackoverflow.com'});
私はオプション1が動作するようになっていません知っているが、オプション2も動作しませんが、私は私がになってるかわからないと見てクラス属性をプログラムで設定します。
私はそれを絶対にはっきりさせるために、オプションと呼ばれるプロパティではなく、クラスに 'name'と 'url'を設定したいと考えています。
'option'の変数宣言を修正すると、うまく動作します。 https://jsfiddle.net/popyL5dq/なぜそれは動作しないと思いますか?あなたはどんな出力を得ていますか? –
*動作しません。*動作しません。コンソールを見てください。変数 'option'には' ReferenceError'があります。それは間違いを追跡するのに必要な手がかりをすべて与えるはずです。 –
これはES2015とは関係ありません。それは基本的なJSです。 –