第29回
今回はまたしてもクラスについてやります。
この実験でsakataはバージョンアップしました。(?)
まずは、下のソースをご覧ください。
このソースでの最大の特徴は、「functionの文法の使い分け」です。
最初に書かれている、「function Class(){」の文法は、「クラスを定義するときに使い」、
後に書かれている、「this.Me=function(){」の文法は、「関数を定義するときに使う」と考えられます。
なぜかというと、「this.Me=function(){」が、functionとして新しいクラスを定義されてしまう場合は、
その中でのthisは、Meというクラスを指すことになってしまいます。
しかし、ここではthis.nameという「Classのプロパティ」を参照できていることから、
完全に「関数」として定義されたことになります。
以上のことから、次のようなことがいえます。Javaの話も入ります。

function クラス名(引数){
処理
}
の文法は、クラス(オブジェクト)を定義するときに使い、関数を定義するものとしては使ってはいけません。
このときに行われる処理は、Javaで言う、そのクラスの「コンストラクタ」にあたるものと考えられます。
ですから、関数を定義する場合は、
関数名=function(引数){
処理
}
と書くべきです。
何か今まで信じてきたものが覆されたという感じです。
やっぱりJavaとJavaScriptは同じじゃないですか。
これからはその点を強調してサイトを運営していこうと思います。
また、文法なども直していきたいと思います。
戻る