JavaScript オブジェクトの定義

コース推薦:

JavaScriptでは、オブジェクトが王です。オブジェクトを理解すれば、JavaScriptを理解できます。

  • JavaScriptではほぼ「すべて」がオブジェクトです。 文字列はオブジェクトです(例えば、 new
  • 布尔はオブジェクトです(例えば、 文字列はオブジェクトです(例えば、 new
  • 数字はオブジェクトです(例えば、 文字列はオブジェクトです(例えば、 new
  • キーワード定義)
  • 日付は常にオブジェクト
  • 算術は常にオブジェクト
  • 正規表現は常にオブジェクト
  • 配列は常にオブジェクト
  • 関数は常にオブジェクト

オブジェクトは常にオブジェクト

すべてのJavaScriptの値は原始値以外すべてオブジェクトです。

JavaScriptの原始値原始値

これは属性やメソッドを持たない値を指します。原始データタイプ

これは原始値を持つデータを指します。

  • "Hello"
  • 3.14
  • false
  • falseは常にfalseです
  • (object) nullは常にnullです

JavaScriptは5種類の原始データタイプを定義しています:

原始値は一貫して変わらない(ハードコードされているため、変更することができません)。

x = 3.14を仮定すると、xの値を変更できますが、3.14の値を変更することはできません。 タイプ
コメント "Hello" string
"Hello"は常に"Hello"です 3.14 number
3.14は常に3.14です false true
trueは常にtrueです false boolean
falseは常にfalseです falseは常にfalseです null
(object) nullは常にnullです (object) nullは常にnullです undefined

undefinedは常にundefinedです

オブジェクトは変数を含む変数です

インスタンス

JavaScript変数は、以下のように単一の値を含むことができます:

自分で試してみましょう

var person = "Bill Gates";

オブジェクトも変数です。ただし、オブジェクトは多くの値を含むことができます。値は以下の順序で並べられます名前 : 値

インスタンス

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

自分で試してみましょう

JavaScriptオブジェクトは、以下のように形式付けされています(名前と値はコロンで区切られます)。命名値の集合です。

オブジェクト属性

JavaScriptオブジェクトの命名値は、以下のように呼ばれる属性

属性
firstName Bill
lastName Gates
age 62
eyeColor blue

名前値对で書かれたオブジェクトは、以下のように似ている:

  • PHPの連想配列
  • Pythonの辞書
  • Cのハッシュテーブル
  • Javaのハッシュマップ
  • RubyやPerlのハッシュ

オブジェクトメソッド

メソッドは、オブジェクト上で実行できるアクション

オブジェクト属性は、原始値、他のオブジェクト、および関数で構成できます。

オブジェクトメソッドは、以下を含みます関数定義のオブジェクト属性です。

属性
firstName Bill
lastName Gates
age 62
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

JavaScriptオブジェクトは、属性とメソッドと呼ばれる名前付きの値のコンテナです。

次の章で、方法についてもっと詳しく学びます。

JavaScriptオブジェクトの作成

JavaScriptを使用して、独自のオブジェクトを定義して作成できます。

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

  • オブジェクトリテラルを使用して、単一のオブジェクトを定義して作成します。
  • キーワードnewを使用して、単一のオブジェクトを定義して作成します。
  • オブジェクトの構造子を定義し、構造子タイプのオブジェクトを作成できます。

ECMAScript 5では、以下の関数 Object.create() を使ってオブジェクトを作成します。

オブジェクトリテラル

これはオブジェクトを作成する最も簡単な方法です。

オブジェクト文字を使用して、一つの文でオブジェクトを定義して作成できます。

オブジェクトリテラルとは、括弧 {} 名前:値対(例えばage:62)

以下の例も、四つの属性を持つ新しいJavaScriptオブジェクトを作成しています:

インスタンス

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

自分で試してみましょう

スペースや折り返しは重要ではありません。オブジェクトの定義は複数行にわたって記述できます:

インスタンス

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:62,
    eyeColor:"blue"
};

自分で試してみましょう

JavaScriptのキーワードnewを使用して

以下の例も、四つの属性を持つ新しいJavaScriptオブジェクトを作成しています:

インスタンス

var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue"; 

自分で試してみましょう

上記の二つの例の結果は同じです。使用する必要はありません。 new Object()

簡便性、読みやすさ、および実行速度を考慮して、最初の作成方法(オブジェクトリテール方法)を使用してください。

JavaScript オブジェクトは変更可能です

オブジェクトは変更可能です:参照を通じてアドレスを特定し、値を通じては特定しません。

personがオブジェクトである場合、以下の文は person のコピーを作成しません:

var x = person;  // これは person のコピーを作成しません

オブジェクト x personのコピーです。それこれは person.x と person は同じオブジェクトです。

xへのどのような変更も personに影響を与えます、なぜなら x と person は同じオブジェクトであるからです。

インスタンス

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // これにより x.age と person.age が同時に変更されます

自分で試してみましょう

注記:JavaScript の変数は変更不可能です。ただし、JavaScript オブジェクトのみが変更可能です。