ホームページ  >  記事  >  ウェブフロントエンド  >  object_javascript スキルによってインデックス付けされた js 連想配列

object_javascript スキルによってインデックス付けされた js 連想配列

WBOY
WBOYオリジナル
2016-05-16 18:23:52990ブラウズ

JSON オブジェクトについては、ウィキペディア (http://zh.wikipedia.org/zh-cn/JSON) および公式 Web サイト (http://www.json.org/) を参照してください。 json-zh.html)。

JavaScript は json をネイティブにサポートしているとよく言われますが、これは json を JavaScript の Object オブジェクトの柔軟なアプリケーションと考えることができるためです。

通常は json を使用します。これは主にフロントエンドとバックエンドのデータ交換の形式として使用されます。

コード ロジックでは、連想配列がより一般的に使用されます。ただし、それでもオブジェクト型をキーと値のペアのキーとして使用することはほとんどありません。

var a= {}, b= [];

a[b] = new Date(); //時刻の値は a[b] を通じて取得できます。

キー名の型がオブジェクトになるなんて、なんと素晴らしいことでしょう!

しかし、問題があります。この方法で使用する場合は、データを動的に追加する必要があるという条件があります。 (現在、私はクラスメイトと一緒で、他のブラウザをテストする条件がありません。現在、IE8 と Sogou ブラウザの IE カーネルと weikit カーネルをテストしました)

テスト コードは次のとおりです。

コードをコピーします。 コードは次のとおりです。

var d = document.getElementById("hello"), obj = [1,2,3], a = {obj:"test"};
a[d] = "DOMElement"; a[obj]); //未定義
alert(a[d]); //DOMElement
alert(a[document.getElementById("hello")]); //DOMElement
a[obj] ] = "配列オブジェクト" ;
alert(a[obj]); //配列オブジェクト


実際には、キー名はすべて文字列です:

コードをコピー コードは次のとおりです:
var d = document.getElementById("hello"), obj = [ 1,2,3], a = {obj :"test"}; //テスト

var str = new String("1,2, 3");
a[obj] = "配列オブジェクト";
alert(a[obj]); //配列オブジェクト
alert(a[str]); //配列オブジェクト

var Class1 = function(_val){
var val = _val;
this.toString = function(){
return val;

var obj2 = new Class1("1,2, 3");
alert(a[obj2]);//配列オブジェクト


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。