Source Website (翻譯練手) 2017年12月15日javascript
這周,咱們學習了關於JavaScript Scope和how to define and update variables across different types of scopejava
你也許想在這時候在全局做用域中聲明一個函數或者變量(你想讓其餘的script可以使用它,例如,一個輕量級的框架。)bash
可是這樣來講,你想在全局做用域中使用你的方法和變量。同時,若是另外一個script或者另外一個開發者定義了一個和你的script裏面名字如出一轍的函數或者變量,那將會出現重寫或者形成衝突。app
你能夠在詞法做用域中用一個函數封裝你的代碼。框架
// Wrapper for your code(封裝你的代碼)
var myScripts = function () {
// Your codes goes here...
};
// Run your scripts
myScripts();
複製代碼
若是你想當文件運行且沒有加載你的函數時代碼當即運行,你能夠使用一種名爲當即執行函數來作這件事情。當即執行函數是(內嵌,沒有名字)一個匿名函數能夠馬上運行。函數
;(function (window, document, undefined) {
// Your code goes here...
})(window, document);
複製代碼
使用兩種之一能夠讓你的代碼更強壯。post