私の簡単な例:プロパティ名を文字列として取得する方法は?
let a = { foo : 5}, b = { stuff : 7};
let func = function(obj, prop) { ++obj[prop]; }
func(a, 'foo');
func(b, 'stuff');
私は直接リテラル文字列としてプロパティ名を設定func
を呼び出します。遅く(私のコードソースで)プロパティの名前を変更したい場合、文字列リテラルも変更する必要があります。文字列値をリテラルとして使用する代わりに、実行時にプロパティ名を文字列として取得することは可能ですか?
UPD私のプロジェクトで
(明確にするため)、私はいくつかのクラスを持っているそれらのそれぞれは、配列を含むプロパティがあります。しかし、このプロパティは各クラスの名前が異なります。これらの配列の内容を処理するロジックがあります。このロジックは各クラスで同じです。今はプロパティ名を文字列リテラルとして渡しますが、後でコードソースでこれらのプロパティの名前を変更すると、文字列リテラルも変更する必要があります。もし私がそれをするのを忘れると、私は問題を抱えます。ですから、私はこの作業で文字列リテラルの使用を取り除きたいと思っています。
あなたは常に単一のプロパティと関数にオブジェクトを渡しますか?その場合、それは簡単だろう。そうでなければ...どのようなプロパティが正しいプロパティを使用するかを関数がどのように知ることができますか? – Touffy
*>それは簡単でしょう。* ? *>どのようなプロパティが適切なプロパティであるかを関数が知ることができますか?* プロパティ名で指定します。 –
ええ、あなたはその物件の名前を変更することができると言った。 2つのプロパティとプロパティ名を持たないオブジェクトを渡すと、どのプロパティがどのプロパティをインクリメントするのかが分かりますか? – Touffy