私は、プライベート変数を使用する既存のオブジェクトにメソッドを適用しようとしています。オブジェクトは、そのように設定され:javascriptのオブジェクト変数とプライベート変数にメソッドを適用する
function a(given_id)
{
var id= given_id;
}
は、今私はそう
my_obj = new a('some_id');
my_obj.myMethod = function(){
alert(id);
}
のようにそれにいくつかの新しい方法を適用したい今、私はmy_obj.myMethod()に行く場合、私はidが定義されていないというエラーを取得します。 私はIDを公開から公開に変更する場合、この同じコードが機能します。
myMethodが元々特権メソッドとして定義されていれば、これが機能するため、なぜこのようなことが起こっているのか分かりません。私が考えることができるのは、myMethodが特権的なメソッドではなく、publicメソッドとして追加されていることだけです。
これに関する情報は非常に高く評価されます。
はい私はそれが(上記のように)それを修正することがわかっていますが、id変数を非公開にしたいと思います。 var idは特権メソッドからアクセス可能でなければなりません。オブジェクトにそれを適用しながら特権として宣言する方法はありますか? – Ori
答えをインラインで編集します。 –
はい、これはFooにBarを追加しようとしている以外は機能します。つまり、私はfoo.Bar = function(){....}のようなことをしなければならないということを意味します。 この構文を使用して、どのように特権として宣言しますか? 返信ありがとう – Ori