出羽さんのブログより
出羽ブログよりJavaScriptの記事。
http://d.hatena.ne.jp/dewa/20080110#1199944760
最近、JavaScriptでクラスを作ることがあって、動きがいまいちつかめなかったけど、これでわかった。
前は、クラスの定義で
var Test = function(a) { this.a = a; a = new String("置き換え"); function func() { alert("a= " + a); alert("this.a= " + this.a); } }
としていました。この状態で、
var t1 = new Test("para"); t1.func
としても、this.aの値がnullでした。
勘違いは、クラスの中のfunctionもthisで定義するところで、以下のようにしてうまく行きました。
var Test = function(a) { this.a = a; a = new String("置き換え"); this.func = function() { alert("a= " + a); alert("this.a= " + this.a); } }
先ほどとおなじく
var t1 = new Test("para"); t1.func
とすると、
a-置き換え this.a=para
となります。
だいぶ見えました。
JavaScriptは簡単なようで難しいです。