クラスとコンストラクタ
参考書を読み進めていくうちに頭が混乱してきたので、整理。以下、自分用メモ
オブジェクト
var obj = new man() ;
コンストラクタの定義
function man(name){ this.name = name; this.say = function() { alert(this.name) ; } } var man = function(name) { this.name = name; this.say = function() { alert(this.name) ; } }
オブジェクトのメソッド定義
var obj = man() ; obj.say = function() { alert ("hello") ; }
すべてのオブジェクトはconstructorプロパティを持つ。そのconstructorプロパティはprototypeオブジェクトのプロパティ値でもある。
var hoge = Array() ; alert(hoge.constoructor) ; // function() {nativeなんちゃら}と表示
すべてのオブジェクトで共通のものは、prototypeで定義、インスタンス事に違うものを定義する場合は、コンストラクタで定義する。
以下もメモ
この場合はインスタンスプロパティ
var hoge = new Object() {} ; hoge.a ;
この場合はクラスプロパティ
function hoge() { } hoge.prop = 1 ;
この場合はインスタンスメソッド
var hoge = function() { name : "jigen" ; } hoge.prototype.say = function { alert( this.name ) ; } ; var obj = new hoge() ; obj.say() ;