変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

2015年4月12日

prototype と static

javascriptでクラスっぽいものにしたい場合
メンバーをprototypeにメンバー関数を追加する。

sjis.prototype.xxx = function() {
alert("OK");
};

ところがこの宣言したメンバーをメンバーから参照すると

sjis.prototype.yyy = function() {
xxx();
alert("OK");
};

とundefinedとなってしまうことがある。
通常のfunction 定義は、jsファイルを読み切ってから実行するので参照先は後に書いても問題ないけど、
無名関数の場合は、その場で組み込んでしまうようで、参照するメンバーは先に記述しないとダメらしい。
 
クラス宣言っぽいことはできるけど
private、protected、staticなメンバーは作れないのも痛い。
それっぽいやり方はいくつか見つけたけど
基本は、prototype に入れる方法なのでチョット扱いが大変。
それくらいなら、
var   クラス名_STATIC_メンバー名=null;
と書いた方が楽。




top