鍍金池/ 問(wèn)答/HTML/ node環(huán)境下通過(guò)var聲明的對(duì)象是掛載到哪里?

node環(huán)境下通過(guò)var聲明的對(duì)象是掛載到哪里?

clipboard.png

node環(huán)境下通過(guò)var聲明的對(duì)象是掛載到global全局對(duì)象上面嗎?但是我通過(guò)global.變量名 打印出來(lái)的結(jié)果怎么是undefined呢?
求大佬幫忙解疑一下?

var age = 22;
var printAge = function (age) {
    console.log(age);
}
console.log('var聲明的變量',window.age===22);//false
console.log('var聲明的變量',window.printAge===printAge);//false
console.log(global);//window
console.log(global.age);//undefined
回答
編輯回答
慢半拍

你這樣寫(xiě)不會(huì)再global掛載age

你需要這么寫(xiě):

// 這里這里沒(méi)有var
age = 22;
var printAge = function(age) {
  console.log(age);
};

console.log(global.age); //22
2017年1月11日 23:13
編輯回答
雨蝶

確定這個(gè)代碼不會(huì)報(bào)錯(cuò)嗎???

如果運(yùn)行環(huán)境是 node,那么根本不存在window

如果運(yùn)行環(huán)境是 browser,那么根本不存在 global

2017年2月24日 11:56
編輯回答
貓小柒

這個(gè)var屬于模塊作用域,只在當(dāng)前js文件內(nèi)有效,并不是全局的;想要全局,需要 global.age = 1

2017年1月22日 06:03
編輯回答
荒城
(function(exports, require, module, filename, dirname)){
   //你執(zhí)行的代碼
}

那是因?yàn)槟銏?zhí)行的代碼被函數(shù)包裹,var在函數(shù)作用域頂部。而如果你是進(jìn)入node指令窗口寫(xiě)這段代碼,那就在global上。

2017年5月12日 09:27