コアスクリプトが読み解けない

elize

ユーザー
JSDoc @namespace に書かれている通りです。
ありがとうございます、「@namespace JsExtensions」の部分はJSDocだということは分かりました。

しかし、名前空間であるのなら、

var JsExtensions = {
...何らかの処理...
};

のように記述する必要があると思うのですが、JSDocの下の部分を見てもそのような部分がなく、グローバルに見える領域で関数の再定義などがなされています。

これはどういうことでしょうか。
1619963567538.png
 

DarkPlasma

ユーザー
しかし、名前空間であるのなら、

var JsExtensions = {
...何らかの処理...
};

のように記述する必要があると思うのですが、JSDocの下の部分を見てもそのような部分がなく、グローバルに見える領域で関数の再定義などがなされています。
後半を読み落としていませんか?

You can also write a virtual JSDoc comment that defines a namespace used by your code.
とあるように、実際のobjectではなく仮想的なJSDocのコメントで名前空間を定義することもできます。
@namespaceはあくまでJSDocであり、コードとして実行時に何か効力を発揮するようなものではありません。
単に可読性や静的解析のための目印をつけているだけです。

ツクールMV/MZでは、Array, Number, String, Math に独自の関数を追加定義(注: こういった追加定義は推奨されていません)し、それらを JsExtensions という仮想的な名前空間の下に置いています。
 

elize

ユーザー
後半を読み落としていませんか?


とあるように、実際のobjectではなく仮想的なJSDocのコメントで名前空間を定義することもできます。
@namespaceはあくまでJSDocであり、コードとして実行時に何か効力を発揮するようなものではありません。
単に可読性や静的解析のための目印をつけているだけです。

ツクールMV/MZでは、Array, Number, String, Math に独自の関数を追加定義(注: こういった追加定義は推奨されていません)し、それらを JsExtensions という仮想的な名前空間の下に置いています。
なるほど凄くよく分かりました。
仮想的な名前空間なんていうものが許されるのですね。

お詳しいですね、ありがとうございました。
 
トップ