1. ホーム
  2. javascript

[解決済み] ハイフンを含むJavaScriptオブジェクトのプロパティを参照するにはどうすればよいですか?

2022-06-06 16:12:36

質問

私は このスクリプト を使って、継承されたスタイルなどのスタイルオブジェクトを作成しています。

var style = css($(this));
alert (style.width);
alert (style.text-align);

次のようにすると、最初の警告はうまくいきますが、2番目の警告はうまくいきません... - をマイナスとして解釈していると思われます。デバッガでは「uncaught reference error」と表示されます。文字列ではないので、引用符で囲むことはできませんが。では、このオブジェクトプロパティはどのように使えばいいのでしょうか?

どのように解決するのですか?

コメントを見てください。CSSのプロパティの場合、キー記法は多くのプロパティと互換性がないことがわかります。したがって、キャメルケースのキー表記を使用することが現在の方法です。

obj.style-attr // would become

obj["styleAttr"]


ドットではなく、キー表記を使用する

style["text-align"]

JavaScriptにおける配列はすべてオブジェクトであり、すべてのオブジェクトは単なる連想配列です。つまり、配列のキーを参照するのと同じように、オブジェクトの中の場所を参照することができるのです。

arr[0]

またはオブジェクト

obj["method"] == obj.method

この方法でプロパティにアクセスする際に覚えておきたいことがいくつかあります。

  1. カウンターを使ったり、動的なメソッド名を使ったりしていない限り、文字列を使用してください。

    これは、obj[method]が未定義のエラーを出すのに対して、obj["method"]は出さないことを意味します。

  2. JavaScriptの変数で許可されていない文字を使用している場合、この記法を使用する必要があります。

この正規表現にほぼ集約されます。

[a-zA-Z_$][0-9a-zA-Z_$]*