私はモジュール公開プロトタイプパターン(https://weblogs.asp.net/dwahlin/techniques-strategies-and-patterns-for-structuring-javascript-code-revealing-prototype-pattern)を使用していますが、プロトタイプ関数でこの変数にアクセスする際に問題があります。私はこのコードを持っている:モジュールはプロトタイプパターン - プライベート変数を公開します
myapp.ConfirmationWindow = function (temptype) {
this._type = temptype;
};
myapp.ConfirmationWindow.prototype = function() {
this._showConfirmationWindow = function (message) {
var a = this._type; //valid
return _showWindow("hello");
}
this._showWindow = function (message) {
var a= this._type; //invalid
}
return {
showConfirmationWindow: _showConfirmationWindow
};
}();
は私が)_showConfirmationWindow(中this._typeにアクセスすることができるけど、_showWindowでthis._typeにアクセスすることはできませんよ。違いは、プロトタイプはpublicとして_showConfirmationWindow()を設定し、privateとして_showWindowを設定していますが、なぜ、_showWindowはthis._typeにアクセスできないのですか。なぜこれが当てはまるのですか?私が見つけた
一つの解決策は、_showWindow
に余分なパラメータとして
または単に返す_showWindow.call(this、 "hello"); ' – jered
これはもう1つのオプションです。私はちょうど 'call'を使ってスニペットを追加したかった – cyrix
あなたはself = thisについて詳しく説明できますか? – user2769810