English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
オブジェクトは属性とメソッドの集合からなるデータタイプです。
多くの他のプログラミング言語と同様に、JavaScriptのオブジェクトは現実世界のオブジェクトと比較できます。
JavaScriptでは、基本的にすべてがオブジェクトです:
文字列はオブジェクト(newキーワードを使用して定義されている場合)でできます
数字はオブジェクト(newキーワードを使用して定義されている場合)でできます
ブール値はオブジェクト(newキーワードを使用して定義されている場合)でできます
日付は常にオブジェクトです
数学は常にオブジェクトです
配列は常にオブジェクトです
正则表达式は常にオブジェクトです
関数は常にオブジェクト
Objectはオブジェクト
原語以外のすべてのJavaScript値はオブジェクトです。
原始値は属性やメソッドを持たない値です。
JavaScriptでは、5の種類の原始型があります:
string
number
boolean
null
undefined
JavaScriptの変数は一つの値しか含むことができません。
var user = "oldtoolbag.com";テストを見て‹/›
オブジェクトも変数ですが、オブジェクトは多くの値を含むことができます。
オブジェクトを以下のように書くことができますname:valueを、コロン(:)で区切ります。
var user = {firstName: "ビシャル", lastName: "ジョダリ", age:22, location: "ニューデリー"};テストを見て‹/›
JavaScriptオブジェクトは無序の属性の集合です。
属性はオブジェクト内の名前と値の関連であり、どんなデータ型も含むことができます。
属性は通常、オブジェクトの特徴を指します。
属性 | 属性値 |
---|---|
firstName | 维沙尔 |
lastName | 乔达里 |
age | 22 |
location | ニューデリー |
次の章で属性に関するもっと詳しい情報を学びます。
メソッドはオブジェクト属性の値として関数であり、したがってオブジェクトが実行できるタスクです。
メソッドは属性として保存された関数として関数定義。
属性 | 適切な値 |
---|---|
firstName | 维沙尔 |
lastName | 乔达里 |
age | 22 |
location | ニューデリー |
getName | function() { return this.firstName + " " + this.lastName;} |
注意:は属性として保存された関数です。
JavaScriptには多くのプリミティブなオブジェクトがあります。また、自分自身のオブジェクトを作成することもできます。
新しいオブジェクトを作成する方法はいくつかあります:
user.location = "新德里";オブジェクト定数を先に作成します。これは大括号{}を使用しています。
user.location = "新德里";オブジェクト構造関数を先に作成します。これはnew Object()を使用しています。
または、まず以下のようにコンストラクタ その関数を呼び出すオブジェクトをインスタンス化する例
user.location = "新德里";オブジェクト定数これはJavaScriptオブジェクトを作成する最も簡単な方法です。
user.location = "新德里";オブジェクト定数、オブジェクトを一つの文で定義して作成することができます。
以下の例では、四个属性を持つ新しいJavaScriptオブジェクトを作成します:
var user = {firstName: "ビシャル", lastName: "ジョダリ", age:22, location: "ニューデリー"};テストを見て‹/›
オブジェクトの定義は複数行にわたることができます:
var user = { firstName: "维沙ル", lastName: "乔达里", age: 22, location: "ニューデリー" };テストを見て‹/›
user.location = "新德里";オブジェクト構造関数これはJavaScriptオブジェクトを作成する別の方法です。
以下の例では、四个属性を持つ新しいJavaScriptオブジェクトを作成します:
var user = new Object(); user.firstName = "维沙ル"; user.lastName = "乔达里"; user.age = 22; user.age =テストを見て‹/›
;
user.location = "新德里";以下の二つの例は完全に同じです。new Object()を使用する必要はありません。オブジェクトリテル
コンストラクタを使用する
以下の二つのステップでオブジェクトを作成できます:コンストラクタオブジェクトの型を定義する(大文字で始まる慣習を使用しています)
newキーワードを使用してオブジェクトの作成例
以下の例では、構造関数を通じてオブジェクトの型を定義しています:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; }
今や、名前空間user1のオブジェクト、以下のように表示されます:
var user1 = new User("ヴィシャル", "ジョダリ", 22, "新德里");テストを見て‹/›
このチュートリアルの後半部分で説明しますコンストラクタ。
可変は変更できる変数です。JavaScriptでは、オブジェクトと配列のみが可変で、原始値ではありません。
可変オブジェクトは、作成後にその状態を変更できるオブジェクトです。
不可変オブジェクトは、一旦オブジェクトが作成されるとその状態を変更することができないオブジェクトです。
文字列と数字は不可変なこの点を理解するために、例を示しましょう:
var immutableString = "Hello"; // 上記のコードでは、新しい文字列値を持つ新しいオブジェクトが作成されています。 immutableString = immutableString + "World"; // 今や「World」を現在の値に追加します。
"immutableString"を文字列値に追加した後、以下のイベントが発生します:
"immutableString"の現在の値を取得します。
"World"が"immutableString"の現在の値の後に追加されます。
その後、結果値は新しいメモリブロックに割り当てられます。
今や、"immutableString"オブジェクトは新しいメモリ空間を指しています。
以前に作成されたメモリ空間は現在ゴミ収集に使用できます。
オブジェクトは可変です:参照ではなく値を通じてアドレスを取得します。
userがオブジェクトである場合、以下の文はそのユーザーのコピーを作成しません:
var x = user; // これによりuserのコピーは作成されません。
オブジェクトxはuserのコピーではありません。それはuser自身です。xとuserは同じオブジェクトです。
xに対するどんな変更もuserに影響を与えます、なぜならxとuserは同じオブジェクトだからです。
var user = {firstName: "ビシャル", lastName: "ジョダリ", age:22, location: "ニューデリー"}; var x = user; x.location = "Goa";// これにより、x.locationとuser.locationが同時に変更されますテストを見て‹/›
JavaScriptでは、オブジェクトは参照型です。二つの異なるオブジェクトが同じ属性を持っていても、彼らは決して等しくなりません。
// 二つの変数、同じ属性を持つ異なる二つのオブジェクト var fruit = {name: "apple"}; var fruitbear = {name: "apple"}; fruit == fruitbear; // 返却 false fruit === fruitbear; // 返却 falseテストを見て‹/›
同一オブジェクトの参照を自身と比較するとtrueが返されます:
// 二つの変数、一つのオブジェクト var fruit = {name: "apple"}; var fruitbear = fruit; // fruitオブジェクトの参照をfruitbearに割り当てる // このfruitとfruitbearは同じオブジェクトを指している fruit == fruitbear; // 返却 true fruit === fruitbear; // 返却 trueテストを見て‹/›