javascript:object
差分
このページの2つのバージョン間の差分を表示します。
javascript:object [2008/07/03 08:28] – 外部編集 127.0.0.1 | javascript:object [2011/07/06 02:49] (現在) – nullpon | ||
---|---|---|---|
行 1: | 行 1: | ||
====== JavaScriptのオブジェクト ====== | ====== JavaScriptのオブジェクト ====== | ||
+ | |||
+ | * ネイティブオブジェクト - ECMAScriptの実装で用意されているオブジェクト | ||
+ | * 標準ネイティブオブジェクト - ECMAScriptの仕様で決められているネイティブオブジェクト | ||
+ | |||
+ | * ビルトインオブジェクト - ECMAScriptの実装で用意され、実行環境から独立して最初から存在するオブジェクト。ネイティブオブジェクトに等しい | ||
+ | * 標準ビルトインオブジェクト - ECMAScriptの仕様で定義されているビルトインオブジェクト。標準ネイティブオブジェクトと同義 | ||
+ | |||
+ | * ホストオブジェクト - ECMAScriptのホスト環境によって作成されるオブジェクト、プログラムの実行環境に依存する。 | ||
+ | |||
+ | たとえばDOMオブジェクトはブラウザという実行環境に依存するため、ネイティブオブジェクトではなく、ホストオブジェクトである。 | ||
+ | |||
+ | |||
===== Objectコンストラクタ ===== | ===== Objectコンストラクタ ===== | ||
- | new式によって新しいオブジェクトを作成(Objectオブジェクトのクローンを作成)します。 | + | new演算子によって新しいインスタンスを作成する。 |
<code javascript> | <code javascript> | ||
// 引数無し、null、undefinedの場合→新しいオブジェクト生成 | // 引数無し、null、undefinedの場合→新しいオブジェクト生成 | ||
行 20: | 行 33: | ||
===== メソッドとプロパティ ===== | ===== メソッドとプロパティ ===== | ||
- | メソッドとプロパティは、生成したオブジェクトにいつでも追加して使う事ができます。 | + | メソッドとプロパティは、生成したオブジェクトにいつでも追加できる。 |
<code javascript> | <code javascript> | ||
var obj = new Object(); | var obj = new Object(); | ||
行 28: | 行 41: | ||
print(obj.hoge); | print(obj.hoge); | ||
+ | obj.fuga= " | ||
+ | print(obj.fuga); | ||
// メソッド追加 | // メソッド追加 | ||
- | obj.getHoge | + | obj.getHogeFuga |
- | return this.hoge | + | return this.hoge |
} | } | ||
- | print(obj.getHoge()); // ホゲ | + | print(obj.getHogeFuga()); // ホゲフガ |
</ | </ | ||
- | メソッド内で他のメソッドやプロパティにアクセスするにはthisキーワードを使います。 | + | メソッド内で他のメソッドやプロパティにアクセスするにはthisキーワードを使う。 |
- | ===== オブジェクトと連想配列 ===== | + | プロパティにアクセスするのは、. 演算子で直接名前を指定するか、[] 表記を使う。(ECMA-262 5th 11.2.1) |
- | オブジェクトは連想配列として扱う事が可能です | + | |
- | <code javascript> | + | |
- | var obj = new Object(); | + | |
- | obj.hoge = " | + | < |
- | print(obj.hoge); | + | console.log( obj.hoge ) |
- | print(obj[" | + | console.log( obj[" |
- | obj[" | + | console.log( obj.getHogeFuga() |
- | print(obj.fuga); | + | console.log( obj["getHogeFuga"]() ); |
- | print(obj["fuga"]); | + | |
</ | </ | ||
- | JavaScriptでは連想配列とオブジェクトは同じ物です。 | + | |
+ | []表記では文字列でプロパティを指定できるので、動的なメソッドディスパッチ・プロパティアクセスが容易である。 | ||
+ | |||
+ | ===== オブジェクトリテラル ===== | ||
+ | |||
+ | new演算子を使わず、オブジェクトリテラルを用いてインスタンスを生成できる(ECMA-262 5th 11.1.5)。 | ||
<code javascript> | <code javascript> | ||
- | var obj = {hoge: " | + | var obj = { |
- | print(obj.hoge); // プロパティとしてアクセス | + | |
- | print(obj[" | + | |
+ | | ||
+ | | ||
+ | } | ||
+ | }; | ||
</ | </ | ||
+ | |||
+ | これは以下の処理と同一の結果となる。 | ||
+ | |||
+ | <code javascript> | ||
+ | var obj = new Object(); | ||
+ | obj.hoge = " | ||
+ | obj.fuga = " | ||
+ | obj.getHogeFuga = function() { | ||
+ | return this.hoge + this.fuga | ||
+ | }; | ||
+ | </ | ||
+ |
javascript/object.1215073728.txt.gz · 最終更新: 2011/07/06 02:49 (外部編集)