国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - 咨詢關(guān)于typeof判斷process和require
黃舟
黃舟 2017-04-11 12:27:30
0
2
777

不太明白里面的

  1. typeof process === 'object' 和 typeof require === 'function'和global === 'object',并且為什么他們?nèi)染湍茏C明是global對(duì)象

  2. typeof self 是什么意思呢?

  3. 為什么他們能實(shí)現(xiàn)一樣的效果?

該例子來自ruan大神

//該函數(shù)證明獲取到頂層對(duì)象
(typeof window !== 'undefined'
   ? window
   : (typeof process === 'object' &&
      typeof require === 'function' &&
      typeof global === 'object')
     ? global
     : this);
//該函數(shù)證明獲取到頂層對(duì)象
var getGlobal = function () {
  if (typeof self !== 'undefined') { return self; }
  if (typeof window !== 'undefined') { return window; }
  if (typeof global !== 'undefined') { return global; }
  throw new Error('unable to locate global object');
};

謝謝

黃舟
黃舟

人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!

reply all(2)
小葫蘆
  1. typeof process === 'object' && typeof require === 'function' && typeof global === 'object'
    如果為true,且不存在window對(duì)象時(shí)可以認(rèn)為在node環(huán)境中,node的全局對(duì)象就是global等價(jià)于瀏覽器中的window對(duì)象。這個(gè)是node的定義,不太好解釋原因了,如果說原因的話就是開發(fā)node時(shí)就這么起的變量名字吧(笑)

  2. self(window.self) 返回window的只讀引用,即為一個(gè)頂層對(duì)象,所以typeof self !== 'undefined'時(shí),可以認(rèn)為在瀏覽器環(huán)境下獲取到了頂層對(duì)象的一個(gè)只讀引用

  3. typeof global !== 'undefined'這個(gè)就是獲取的node環(huán)境下的頂層對(duì)象,觀察這兩個(gè)函數(shù),其作用都是獲取頂層對(duì)象,一般來說js較多用到的地方是瀏覽器端(前端)和node端(后臺(tái)),winJS這方面不太了解,畢竟還沒用過win10系統(tǒng)(我承認(rèn)我是懶得換),猜測winJS的頂層對(duì)象應(yīng)該也是window,如有錯(cuò)誤請(qǐng)大家指正。

迷茫

這個(gè)是證明在 node 里面, node 的全局變量是 global 而不是 window

> typeof process
'object'
> typeof require
'function'
> typeof global
'object'

https://nodejs.org/api/proces...

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template