問題は、オブジェクトの外側からのオーバーライドを防ぐことです。セッターによるアクセスを防止する
私の考えではセッターを使用することです:
var spot = function(val){
this.id = val;
this.__defineSetter__("id", function(val){alert("bang");});
}
idがconstuctorに一度設定する必要があり、変更されることはありません。 私は10.000のスポットがあるので、プロトタイプにセッターを定義したいと思います。しかし、この場合、セッターはコンストラクターにもアクセスします。
コンストラクタでvar id
を使用してゲッターを定義するつもりはありません。この場合、(10.000)オブジェクトのすべて1つに独自のクロージャがあります。
2番目の質問は、varがコンストラクタから変更されたか、後で(スポット)内部関数から変更されたかを設定者が何とか知っていますか?だから私はオブジェクトの外からのアクセスを防ぐことができます。
あなたの迅速な対応のために。 – kainar