今回はまたしてもクラスについてやります。 この実験でsakataはバージョンアップしました。(?) まずは、下のソースをご覧ください。 |
このソースでの最大の特徴は、「functionの文法の使い分け」です。 最初に書かれている、「function Class(){」の文法は、「クラスを定義するときに使い」、 後に書かれている、「this.Me=function(){」の文法は、「関数を定義するときに使う」と考えられます。 なぜかというと、「this.Me=function(){」が、functionとして新しいクラスを定義されてしまう場合は、 その中でのthisは、Meというクラスを指すことになってしまいます。 しかし、ここではthis.nameという「Classのプロパティ」を参照できていることから、 完全に「関数」として定義されたことになります。 以上のことから、次のようなことがいえます。Javaの話も入ります。 function クラス名(引数){ 処理 } の文法は、クラス(オブジェクト)を定義するときに使い、関数を定義するものとしては使ってはいけません。 このときに行われる処理は、Javaで言う、そのクラスの「コンストラクタ」にあたるものと考えられます。 ですから、関数を定義する場合は、 関数名=function(引数){ 処理 } と書くべきです。 |
何か今まで信じてきたものが覆されたという感じです。 やっぱりJavaとJavaScriptは同じじゃないですか。 これからはその点を強調してサイトを運営していこうと思います。 また、文法なども直していきたいと思います。 |
戻る |