Hatena::Groupjavascript

emergentのJavaScript入門日記

 | 

2008-10-12

JavaScriptはプロトタイプベースのオブジェクト指向言語、という話

19:24 | JavaScriptはプロトタイプベースのオブジェクト指向言語、という話 - emergentのJavaScript入門日記 を含むブックマーク はてなブックマーク - JavaScriptはプロトタイプベースのオブジェクト指向言語、という話 - emergentのJavaScript入門日記

せっかくだしまるごとJavaScriptを最初から読んでいる。

読みながら重要そうなところをメモ。よく見たら筆者は小飼弾さんだった。

JavaScriptには2種類のオブジェクトがある

プリミティブ(primitive)とオブジェクト(Object)がある。

プリミティブ型は中にオブジェクトを詰め込めない。

オブジェクトは入れ子でオブジェクトをどんどん詰め込める。

オブジェクトはただのハッシュ

配列も、キーが数値であるだけのハッシュ。

オブジェクトプロパティもハッシュエントリー。

関数もオブジェクトだからプロパティに設定できる。

設定したものがオブジェクトメソッド

var hello = function() {};
hello.world = function() { return "hello" };

プロトタイプとnew

オブジェクトプロパティは簡単に上書きできてしまう。

プロトタイプ(prototype)は上書きできない。「隠しメソッド」のようなもの。

プロトタイプ内のメソッドはそのままでは使えず、newする必要がある。

var Hello = function() {};
Hello.prototype.world = function() { return "hello" };
var hello = new Hello();

だからJavaScriptはプロトタイプベースのオブジェクト指向言語と呼ばれる。

(他にはクラスベースの言語がある)

 |