全域性變數
同一段**為了能夠在各種環境,都能取到頂層物件,現在一般是使用this
變數,但是有侷限性。
綜上所述,很難找到一種方法,可以在所有情況下,都取到頂層物件。下面是兩種勉強可以使用的方法。
// 方法一
(
typeof
window !==
'undefined'
? window
: (
typeof
process ===
'object'
&&
typeof
require ===
'function'
&&
typeof
global ===
'object'
)
? global
:
this
);
// 方法二
var
getglobal =
function
()
if
(
typeof
window !==
'undefined'
)
if
(
typeof
global !==
'undefined'
)
throw
new
error(
'unable to locate global object'
);
};
現在有乙個提案,在語言標準的層面,引入global
作為頂層物件。也就是說,在所有環境下,global
都是存在的,都可以從它拿到頂層物件。
墊片庫system.global
模擬了這個提案,可以在所有環境拿到global
。
// commonjs 的寫法
require(
'system.global/shim'
)();
// es6 模組的寫法
import
shim from
'system.global/shim'
; shim();
上面**可以保證各種環境裡面,global
物件都是存在的。
// commonjs 的寫法
var
global = require(
'system.global'
)();
// es6 模組的寫法
import
getglobal from
'system.global'
;
const global = getglobal();
上面**將頂層物件放入變數global
。
41 全域性變數Global
global語句的作用是定義全域性變數,例如如果想在函式內訪問全域性作用域內的變數則可以通過global宣告來定義。下面從語法解釋開始分析。檢視 zend zend language scanner.l檔案,搜尋 global關鍵字。我們可以找到如下 global t global global v...
PHP全域性變數global與 GLOBAL詳解
總結 a 1全域性變數相當於有3個變數,函式外部的變數,函式內部的變數,及 global的超全域性變數。global是全域性唯一的,而 var在為全域性變數的別名。b 無論函式內部外部,只要曾經宣告過全域性變數,則 global為全域性的,無需再次宣告 c 在函式內部unset var1 不會影響外...
PHP全域性變數global與 GLOBAL詳解
一 乙個全域性變數相當於有3個變數,函式外部的變數,函式內部的變數,及 global的超全域性變數 global是全域性唯一的,而 var在為全域性變數的別名。二 無論函式內部外部,只要曾經宣告過全域性變數,則 global為全域性的,無需再次宣告 三 在函式內部unset var1 不會影響外部的...