this
クラスの関数メンバーでオブジェクトを使用したい。関数は、クラスのインスタンスによって異なる場合があります。正常に動作しますが、GoogleClosureCompilerから警告が送信されます。
this
したがって、私の質問:プロトタイプでもコンストラクターでもない関数で使用する正しい方法は何ですか?ない場合は、そこで使用する代わりにどうすればよいthis
ですか?
これが私がやろうとしていることの実例です:
/** @constructor */
function MyAlert() {}
/** @type {string} */
MyAlert.prototype.name = "joe";
/** @type {function()} */
MyAlert.prototype.myAlert;
/** @type {MyAlert} */
var formalAlert = new MyAlert();
/** @type {MyAlert} */
var informalAlert = new MyAlert();
informalAlert.myAlert = function() {alert("Hi " + this.name);}
formalAlert.myAlert = function() {alert("Good morning Mr " + this.name);}
formalAlert.myAlert();
informalAlert.myAlert();
コンパイル中にこの警告が表示され、回避する方法が見つかりませんでした。
JSC_USED_GLOBAL_THIS: dangerous use of the global this object at line 11 character 57
formalAlert.myAlert = function() {alert("Good morning" + this.name);}
^
あなたの助けをどうもありがとう!