亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 為什么 Node.js 不給每一個(gè).js文件以獨(dú)立的上下文來避免作用域被污染?

瀏覽:149日期:2023-09-11 10:01:11

問題描述

在cnode論壇看到這樣一個(gè)問題:

目前的 Node.js 將 VM 的接口暴露了出來, 可以讓你自己創(chuàng)建一個(gè)新的 js 上下文, 這一點(diǎn)上跟前端 js 還是區(qū)別挺大的. 在執(zhí)行外部代碼的時(shí)候, 通過創(chuàng)建新的上下文沙盒 (sandbox) 可以避免上下文被污染:

’use strict’;const vm = require(’vm’);let code =`(function(require) { const http = require(’http’); http.createServer( (request, response) => { response.writeHead(200, {’Content-Type’: ’text/plain’}); response.end(’Hello Worldn’); }).listen(8124); console.log(’Server running at http://127.0.0.1:8124/’);})`;vm.runInThisContext(code)(require);

既然可以通過新的上下文來避免污染, 那么為什么 Node.js 不給每一個(gè).js文件以獨(dú)立的上下文來避免作用域被污染?

實(shí)在是在下學(xué)藝不精首先就沒弄明白他問的啥,其次是這個(gè)問題怎么解決;萬望大家不吝賜教,感激不盡,跪謝

引用自:https://github.com/ElemeFE/no...

問題解答

回答1:

誰(shuí)說 Node 沒給每個(gè) js 文件獨(dú)立的上下文了……Node 的每個(gè) .js 作為一個(gè)模塊,實(shí)際都是用一個(gè)函數(shù)封裝起來的,具體參考 你需要了解的 Node.js 模塊

補(bǔ)充:我把你的問題理解錯(cuò)了。全局變量的意義就在于“全局”,Node 有這個(gè),C/C++ 也有,即使 Java、C# 也可以通過靜態(tài)成員來實(shí)現(xiàn)“全局”。全局本身不是問題,問題是你真的需要全局嗎?

回答2:

每個(gè)js文件有獨(dú)立的module,仔細(xì)看過node官網(wǎng)的module部分就能知道,每個(gè)模塊也就是文件都有自己的全局變量module,從而能通過module.exports進(jìn)行模塊導(dǎo)出,每個(gè)文件的內(nèi)容都存在一個(gè)閉包中,所以說,所謂的單獨(dú)上下文其實(shí)是有的,看你怎么定義這個(gè)單獨(dú)上下文,如果沒有的話,CommonJS的module機(jī)制就不存在了。

回答3:

問題其實(shí)有點(diǎn)下套,其實(shí)Node有給每個(gè)js文件獨(dú)立的上下文,但是這避免不了全局的作用域污染,實(shí)際上這是為了功能的妥協(xié)。

當(dāng)然,可以用上嚴(yán)格模式來避免一時(shí)的粗心導(dǎo)致的全局污染。

回答4:

完了 看來 這個(gè)問題沒人回答啊 自己頂一下

在知乎上找到了一個(gè)差不多能回答這個(gè)問題的答案,感覺差不多

https://www.zhihu.com/questio...

回答5:

module 不就是上下本?

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 高清精品一区二区三区一区 | 日本无翼乌邪恶大全彩h污污 | 国产高清在线精品免费不卡 | 亚洲最大网址 | 青青久在线视频免费观看 | 午夜大片免费完整在线看 | 国产福利视频在线播放 | 欧美精品久久 | 国产精品综合网 | 黑人在线播放 | 国产高清精品一区 | 一级特大黄色片 | 一级一片一a一片 | 我要色综合网 | 一区二区三区四 | 插插插av| 日本伊人精品一区二区三区 | 污免费网站 | 曰本又色又爽又黄三级视频 | 女同视频一区二区在线观看 | 成人免费网址在线 | 精品国产福利在线观看91啪 | 国产精品久久久久三级 | 亚洲一二三区在线观看 | 国产国语特级一级aa毛片 | 亚洲国产成人成上人色 | 成人国产在线视频 | 小明明看看视频永久免费网 | 国产成人亚洲欧美激情 | 午夜男人女人爽爽爽视频 | 日本在线观看免费看片 | 日本无卡αv免费视频 | 国产美女主播精品大秀系列 | 亚洲第一福利视频 | 亚洲欧美一区二区三区在线 | 成人卡通精品卡通动漫第一页 | 91网视频在线观看 | 国产精品视频免费一区二区三区 | 在线啊v | 在线欧美精品一区二区三区 | 全黄色片|