Javascript プログラミングには、すべてのグローバル変数を保持するルート オブジェクトであるグローバル オブジェクトがあります。グローバル オブジェクトは、使用しているランタイムによって異なります。Node.js についてはわかりませんが、ブラウザで実行されている JavaScript の場合、グローバル オブジェクトは window オブジェクトです。グローバル変数を作成している場合は、window オブジェクトにプロパティを作成しています。
var def="こんにちは";
def変数またはwindow.defを使用して上記の値にアクセスできます。これは関数でも機能します。
関数 myFunc(){
console.log("こんにちは");
}
したがって、window オブジェクトが表示された場合、この関数を保持する myFunc プロパティが作成されていることがわかります。この関数は myFunc(); を使用して実行できます。直接または window.myFunc(); を使用
グローバル変数は混乱を引き起こします。私はグローバル変数をあまり支持していません。IIFE を使用してみてください。以下のリンクに従ってください。
http://jkoder.com/avoid-polluting-global-namespace-in-javascript-iifeimmediately-invoked-function-expression/