JS之全域性變數global

2022-09-13 16:27:08 字數 2064 閱讀 4840

全域性變數

同一段**為了能夠在各種環境,都能取到頂層物件,現在一般是使用this變數,但是有侷限性。

綜上所述,很難找到一種方法,可以在所有情況下,都取到頂層物件。下面是兩種勉強可以使用的方法。

// 方法一

(typeofwindow !=='undefined'

? window

: (typeofprocess ==='object'&&

typeofrequire ==='function'&&

typeofglobal ==='object')

? global

:this);

// 方法二

vargetglobal =function()

if(typeofwindow !=='undefined')

if(typeofglobal !=='undefined')

thrownewerror('unable to locate global object');

};

現在有乙個提案,在語言標準的層面,引入global作為頂層物件。也就是說,在所有環境下,global都是存在的,都可以從它拿到頂層物件。

墊片庫system.global模擬了這個提案,可以在所有環境拿到global

// commonjs 的寫法

require('system.global/shim')();

// es6 模組的寫法

importshim from'system.global/shim'; shim();

上面**可以保證各種環境裡面,global物件都是存在的。

// commonjs 的寫法varglobal = require('system.global')();

// es6 模組的寫法

importgetglobal 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 不會影響外部的...