ADVANCED_OPTIMIZATIONS コンパイル レベルで Google Closure Compiler を使用しており、あらゆる種類の警告が表示されるため、コンストラクターに注釈を付け始めました。
警告 - グローバルな this オブジェクトの危険な使用
「コンストラクタ」タイプの関数については、次のように注釈を付けます。
/**
* Foo is my constructor
* @constructor
*/
Foo = function() {
this.member = {};
}
/**
* does something
* @this {Foo}
*/
Foo.prototype.doSomething = function() {
...
}
それはうまくいくようですが、 var myFoo = new Foo(); で構築されていない「シングルトン」オブジェクトがある場合はどうなりますか? このタイプのオブジェクトに注釈を付ける方法をドキュメントで見つけることができませんでした。そのタイプは単なるオブジェクトですよね?
Bar = {
member: null,
init: function() {
this.member = {};
}
};