ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptでオブジェクトを作成する3つの方法は何ですか

JavaScriptでオブジェクトを作成する3つの方法は何ですか

醉折花枝作酒筹
醉折花枝作酒筹オリジナル
2021-06-09 16:35:544290ブラウズ

方法は次のとおりです: 1. 組み込みオブジェクト、JavaScript 言語ネイティブ オブジェクト、またはランタイム ホスト オブジェクトを使用します。 2. 「キーと値のペア」の単純なコレクションまたは値の順序付きリストを使用して、JSON 表記を使用します。 . ;3. カスタム オブジェクトの構築。「this」キーワードを使用するか、プロトタイプ プロトタイプを使用して構築します。

JavaScriptでオブジェクトを作成する3つの方法は何ですか

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript でオブジェクトを作成するには、いくつかの方法があります。

(1) 組み込みオブジェクトを使用する

(2) JSON シンボルを使用する

(3) ) カスタム オブジェクトの構築

1. 組み込みオブジェクトの使用

#JavaScript で使用できる組み込みオブジェクトは 2 つのタイプに分類できます:

1、JavaScript 言語ネイティブ オブジェクト (言語レベル オブジェクト) (文字列、オブジェクト、関数など);

2、JavaScript ランタイム ホスト オブジェクト (環境ホスト レベル オブジェクト) (ウィンドウ、ドキュメント、体など

「組み込みオブジェクトの使用」とは、JavaScript 言語のネイティブ オブジェクトの構築メソッドを通じて新しいオブジェクトをインスタンス化することを指します。例:

var str = new String("实例初始化String"); 
var str1 = "直接赋值的String"; 
var func = new Function("x","alert(x)");//示例初始化
func var o = new Object();//示例初始化一个Object

2. JSON シンボルの使用

(i) JSON とは?

JSON (JavaScript Object Notation) は、 JavaScript オブジェクト: 読み取りと書き込みが簡単で、解析と生成も簡単な軽量のデータ交換形式。これは、「JavaScript プログラミング言語、標準 ECMA-262 第 3 版 - 1999 年 12 月」のサブセットに基づいています。 JSON は完全に言語に依存しないテキスト形式であるため、データ交換に理想的な形式です。

JSON は JavaScript のバージョンであり、ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、ObjectiveCAML、Perl、PHP、Python、などの一連の言語でも提供されています。 Rebol、Ruby、Lua などがサポートされているため、JSON が Ajax 開発に推奨されるソリューションになります。

JSON を構築するには 2 つの方法があります。1 つは、さまざまな言語でオブジェクト、レコード、構造、辞書、ハッシュ テーブル、キーとして理解される「キーと値のペア」の単純なコレクションを使用する方法です。リスト、または連想配列など。もう 1 つは、ほとんどの言語で配列として理解される、順序付けられた値のリストを使用します。

一般的に使用される作成方法は最初の方法で、「キーと値のペア」コレクションの形式です。この形式では、オブジェクトは「{」 (左括弧) で始まり、「}」 (右括弧) で終わります。各「名前」の後には「:」 (コロン) が続き、「キー/値」のペアは「,」 (カンマ) で区切られます。

JSON には、(1) シンプルな形式のデータ交換、(2) 人が読み書きしやすい、(3) 機械の分析と操作が容易、という特徴があります。

JavaScript では、JSON はオブジェクトとして理解されます。文字列形式の JSON を通じて、データを JavaScript に簡単に解析し、読み取って渡すことができます。 JSON を使用すると、JavaScript オブジェクトをシリアル化してパラメーターとして渡すことができないという問題がある程度解決されます。

1、単純な JSON

{name:"刘德华",age:"25",sex:"男"}

2、JSON 値のタイプ

JSON 値には、数値、浮動小数点、文字などの単純なデータ型を指定できます。配列やオブジェクトも使用できます。たとえば、メンバー キー値として配列を含む JSON:

{member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]}
{ 
book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], 
author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] 
}

3、JavaScript で JSON を使用する

JSON は JavaScript ネイティブ形式です。つまり、JavaScript で JSON データを処理するのに次のような処理は必要ありません。特別な API やツールキットでは、JavaScript はデフォルトで JSON をオブジェクトとして扱います。

オブジェクトを変数に渡します。例:

var somebooks = { 
book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], 
author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] 
}

JSON の各「キー」は、JavaScript では本の最初のエントリにアクセスするなど、オブジェクトのプロパティに相当します。 , ただ「somebooks.book[0].name」を使うだけで「三國志」の値を取得できます。

JSON 文字列をオブジェクトに変換するだけでなく、オブジェクトを JSON 文字列に「コンパイル」して、JavaScript でのオブジェクトの送信を容易にすることもできます。例:

var Animals = new Object(); 
Animals.name = "dog"; 
Animals.sex = "Male"; 
Animals.age = "2";

Animals オブジェクトをシリアル化して送信することはできません。Animals オブジェクトを JSON 文字列、つまり "{name:"dog",sex:" Male",age:"2" に変換します。 }"。このようにして、JSON 文字列が HTTP リクエストのパラメータとして渡され、Animals オブジェクトをシリアル化して送信するという目的が達成されます。

(ii) JSON は JavaScript オブジェクトを文字列形式で表現します。例:

var myObject = {nickname:"my girlfried",name:"big pig"};

JSON は、実際には JavaScript オブジェクトと文字列間の相互変換のためのプロトコルとして機能します。 JSON の「見た目」は文字列として見えるため、JSON は JavaScript オブジェクトの送信において一定の役割を果たすことができます。たとえば、オブジェクト strObject を文字列に変換して送信し、宛先に到達した後に eval メソッドを通じてオブジェクトに復元します:

function test (o) 
{ 
alert (o.name) 
} 
var strObject = '{nickname:"my girlfriend",name:"big pig"}'; 
test (eval("(" + strObject + ")"));

3. カスタム オブジェクトの構築

高度なオブジェクト構造を作成するには、「this」キーワード構造を使用する方法と、プロトタイプ プロトタイプ構造を使用する方法の 2 つがあります。例:

//使用this关键字定义构造的上下文属性 
function Girl() 
{ 
this.name = "big pig"; 
this.age = 20; 
this.standing; 
this.bust; 
this.waist; 
this.hip; 
} 

//使用prototype 
function Girl(){} 
Girl.prototype.name = "big pig"; 
Girl.prototype.age = 20; 
Girl.prototype.standing; 
Girl.prototype.bust; 
Girl.prototype.waist; 
Girl.prototype.hip; 
alert(new Girl().name);

上の例の 2 つの定義は本質的に同じで、両方とも「Girl」オブジェクトの属性情報を定義します。 「this」と「prototype」の違いは主に属性アクセスの順序にあります。のように: ###

 function Test() 
{ 
this.text = function() 
{ 
alert("defined by this"); 
} 
} 
Test.prototype.test = function() 
{ 
alert("defined by prototype"); 
} 
var _o = new Test(); 
_o.test();//输出“defined by this”

当访问对象的属性或者方法是,将按照搜索原型链prototype chain的规则进行。首先查找自身的静态属性、方法,继而查找构造上下文的可访问属性、方法,最后查找构造的原型链。 

“this”与“prototype”定义的另一个不同点是属性的占用空间不同。使用“this”关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法所需的空间,而使用“prototype”定义,由于“prototype”实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比“this”节约资源。

【推荐学习:javascript高级教程

以上がJavaScriptでオブジェクトを作成する3つの方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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