我使用0.3.1預Node.js的'全球性' 的Node.js的對象
這樣做:
typeof global.parseInt
結果
'undefined'
但是按[標籤時]輸入'global'後在控制檯中輸入。給出了函數列表,包括parseInt。
So is parseInt global或者不是的成員?
我使用0.3.1預Node.js的'全球性' 的Node.js的對象
這樣做:
typeof global.parseInt
結果
'undefined'
但是按[標籤時]輸入'global'後在控制檯中輸入。給出了函數列表,包括parseInt。
So is parseInt global或者不是的成員?
顯然,global
對象不是全局對象,因爲window
在瀏覽器中。它(根據#nodejs @ freenode中的micheil)只能在內部使用。關於全球關閉和什麼的事情。
parseInt
和setTimeout
以及所有這些夥伴都是自己的全局變量。不是任何可見的全局對象的一部分。
這是否意味着裝飾全局對象並不能真正使它可以從模塊中訪問,或者它可以被訪問,但只能作爲其他模塊中全局對象的屬性? – 2012-01-11 09:52:05
無論你對全局對象做什麼,都隨時取消。無論何時內部節點進程需要使用它,都會重置。所以對於任何持久的全局變量來說都是不可靠的。事實上,我見過的只有半秒鐘以上的地方是node-repl(命令行)。 – 2012-01-11 10:14:38
感謝您的評論。這太傷心了:(特別是當很多人在很多地方引導你到全局對象 – 2012-01-11 13:57:06
由於v0.8.14的NodeJS全球的每一個.js
似乎跨模塊的工作,如窗口對象在瀏覽器中一樣。
測試:
a.js:
a1 = console.log; // Will be accessed from b.js
global.a2 = console.log; // Will be accessed from b.js
require('./b.js');
b1('a: b1');
b2('a: b2');
global.b1('a: global.b1');
global.b2('a: global.b2');
b.js:
a1('b: a1');
a2('b: a2');
global.a1('b: global.a1');
global.a2('b: global.a2');
b1 = console.log; // Will be accessed from a.js
global.b2 = console.log; // Will be accessed from a.js
運行a.js輸出:
b: a1
b: a2
b: global.a1
b: global.a2
a: b1
a: b2
a: global.b1
a: global.b2
更多的答案。 – Tushar 2013-09-05 17:14:19
爲什麼你不簡單''typeof parseInt'?這對我有用。 – jwueller 2010-11-09 11:30:49
是的。我只是想知道這種特質的原因是什麼。 – Art 2010-11-09 11:53:44