-
Notifications
You must be signed in to change notification settings - Fork 1
Global Object
uupaa edited this page Nov 11, 2017
·
1 revision
このエントリでは、WebApp/2 に使われている Global Object を取得する Idiom(トリック) について解説しています。
WebApp/2 は Browser, Worker, Node.js, NW.js, Electron など様々な環境で動作します。 この様々な環境で動作する JavaScript を実現するためには、Global Object を獲得し、その環境で利用可能なAPIを知る必要があります。
様々な環境で Global Object を取得する Idiom を WebApp/2 GlobalObject Idiom と呼びます。
const GlobalObject = (typeof self !== "undefined") ? self : global;
このコードは環境によって次のように解釈され、各環境における Global Object を獲得します。
platform | self | global | expression and result |
---|---|---|---|
Browser | window |
(true) ? window : undefined → window |
|
ESModules | window |
(true) ? window : undefined → window |
|
Worker | scope |
(true) ? scope : undefined → WorkerGlobalScope |
|
Node.js | global |
(false) ? undefined : global → global |
|
Electron main |
global |
(false) ? undefined : global → global |
|
Electron render |
window | global |
(true) ? window : undefined → window |
NW.js node context |
global | global |
(true) ? global : global → global |
NW.js browser context |
window |
(true) ? window : undefined → window |
- Install and Setup
- Devlopment (TODO)
- Distribution
- Deployment (TODO)
- Application Structure
- Idioms
- Troubleshooting
- Keywords