防止變數汙染全域性

2021-10-02 15:04:59 字數 645 閱讀 3852

1,作用:防止變數汙染全域性 

// 現在你和同事開發同乙個模組,然後你發現你們變數名大部分相同,為了管理變數,防止汙染全域性,可以閉包來解決這個問題

// 開發規範:init代表著入口、初始化的意思

let name = 'xyz';

let init = (function ()

return function ()

}());

let initxie = (function ()

return function ()

}());

init();

initxie()

————————————————

2. js中的內部函式可以訪問外部函式的變數,稱之為閉包

作用:私有變數

function privatevariable() ;

this.getvalue = function() ;

}var x = new privatevariable();

x.setname("abcd");

console.log(x.value); //undefined

console.log(x.getvalue ()); //abcd

IIFE為什麼不會汙染全域性變數

在開發過程中見到的iife,函式表示式都是匿名的,如果我們把它寫成命名函式表示式,那全域性作用域中豈不是多了乙個變數,這樣又怎麼能保證不會汙染全域性變數呢?通常我們在談論iife時,都是在談論它的用法,模組化,閉包等等,卻少有提及它為什麼可以拿來做模組化,為什麼不會汙染全域性變數。本文雖然是在說ii...

防止全域性變數重複定義

問題 在.h檔案中定義了全域性變數 並用 ifndef identifier h define identifier h endif但是依然出現重複定義問題 分析 ifndef這套條件編譯是為了防止同乙個.c檔案中包含多個相同.h檔案的 比如有乙個.c檔案包含了a.h,a.h又包含了b.h,那麼當你...

全域性變數汙染什麼的最討厭了

用匿名函式將指令碼包起來 使用多級命名空間。這第二條 使用多級命名空間 這個,我覺得並不是很完美的好主意。因為如果級數太多的話會造成變數名字變得長的一逼。沒有做過任何優化的滿目瘡痍的 a.js 和 b.js 都有全域性變數window.a,導致衝突,全域性變數屬於window作用域下的。通過匿名函式...