js之全域性與區域性坑

2021-07-08 12:35:13 字數 687 閱讀 6580

在js中coding的時候有個習慣,因為有許多變數是需要全域性使用的,於是在a檔案中頭部分定義乙個變數

var

self = {};

self.m_num = ;

這樣在a檔案中所有的成員變數都在可以通過self來訪問了

由於模組的不同,於是有了b檔案,出於程式設計習慣,於是在b檔案頭上也定義了乙個變數

var

self = {};

self.m_num = 1;

此時執行程式,發現a檔案中有報錯,居然是在

self.m_num.push(1);
心想不可能啊,怎麼乙個陣列不能push。於是重新清除快取,仍然報此錯誤,檢查變數值,居然是1,徹底崩潰。

原來在js中只要在同乙個程序,不在函式中出現的變數就是全域性變數,檔案模組沒有區分這個變數,相當於在c中a檔案定義了乙個int num,在b檔案中 extern一下這個變數。在js中自動幫你extern了,知道這個問題就好辦了,那麼self作為全域性變數不用少,在每個檔案中加入自己的空間。

self.area_a = {};  //

a檔案self.area_b = {}; //

b檔案

嗯,通過爬這個坑漲了不少知識,切記下來,哪天忘了再翻出來看看

區域性到全域性 全域性到區域性認識之辯解

自從接觸思維導圖就一直在不斷的探索,不斷的畫,畫的效果一次是比一次好一點,可是還是算不上真正意義上的思維導圖。通過不斷的聽分享,老師講課,對思維導圖的一些基本原則是有了一定的認識,可是最難的時候從找聯絡,很難構建知識網。一 那麼什麼是畫思維導圖的原則呢?1.三步驟 目錄羅列 分支結合 重構全域性 2...

js全域性變數與區域性變數

在函式內部定義的就是區域性的,否則就是全域性的 如果函式內的變數沒有var宣告會直接影響全域性的 為什麼沒有var是全域性的?是因為,在js中,如果某個變數沒有var宣告,會自動到上一層作用域中去找這個變數的宣告語句,如果找到,就使用,如果沒有找到,繼續向上查詢,一直查詢到全域性作用域為止,如果全域...

csrf token之全域性認證與區域性認證

1 settings.py沒有注釋到csrf。當post請求的方式會報錯。接下來就解決問題!1.django中介軟體 最多5個 process request 請求 process view process response 相應 process exception 異常 process rende...