国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

javascript - 兩個(gè)js文件相互require

瀏覽:131日期:2023-04-29 18:26:16

問(wèn)題描述

今天遇到的筆試題,請(qǐng)各位老鐵解惑a.js和b.js相互require,會(huì)不會(huì)陷入死循環(huán)?能不能導(dǎo)出結(jié)果?怎么避免這一問(wèn)題?

問(wèn)題解答

回答1:

這是考察JavaScript模塊的循環(huán)加載你可以用使用es6的模塊機(jī)制繞開這個(gè)問(wèn)題,ES6處理'循環(huán)加載'與CommonJS有本質(zhì)的不同。ES6根本不會(huì)關(guān)心是否發(fā)生了'循環(huán)加載',只是生成一個(gè)指向被加載模塊的引用,需要開發(fā)者自己保證,真正取值的時(shí)候能夠取到值。

回答2:

如果從字面意思理解,只使用

var b = require(’b’)

那么這個(gè)問(wèn)題可以理解成CommonJS中的循環(huán)引用問(wèn)題。CommonJS的做法是,一旦出現(xiàn)某個(gè)模塊被'循環(huán)加載',就只輸出已經(jīng)執(zhí)行的部分,還未執(zhí)行的部分不會(huì)輸出。

如果從概念上理解兩個(gè)模塊之間的循環(huán)引用,則還涉及到es6的模塊引用。

import b from ’b’

ES6根本不會(huì)關(guān)心是否發(fā)生了'循環(huán)加載',只是生成一個(gè)指向被加載模塊的引用,需要開發(fā)者自己保證,真正取值的時(shí)候能夠取到值。

單純只使用CommonJs,或者單純只使用esm(es6 module),都不會(huì)發(fā)生死循環(huán)。但如果兩者混用就可能會(huì)發(fā)生。

推薦阮一峰的一篇博客,寫得挺完善的。http://www.ruanyifeng.com/blo...

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 亚洲第一成年免费网站 | 国产成人亚洲毛片 | 成年人免费在线视频网站 | 成人免费一区二区三区视频软件 | 美一级片 | 亚洲国产精品综合久久网络 | 91久久国产露脸精品免费 | 国产精品久久久久久久久久久不卡 | 99视频精品全国免费 | 午夜三级网站 | 92午夜国产福利视频1000 | 午夜三级国产精品理论三级 | 最新主播福利视频在线观看 | 亚洲欧美日本综合一区二区三区 | 久久国产一级毛片一区二区 | 日韩一区二区久久久久久 | 欧美3p精品三区 | 久久最新免费视频 | 深夜福利视频在线看免费 | 欧美jizz19性欧美 | 亚洲视频欧美 | 色伊人国产高清在线 | 加勒比一本一道在线 | 亚洲精品第一区二区三区 | 欧美毛片在线观看 | 特黄特黄一级高清免费大片 | 毛片在线看免费 | 欧美在线不卡 | 加勒比色综合久久久久久久久 | 一区二区三区四区产品乱码伦 | 91精品国产薄丝高跟在线看 | 亚洲午夜一区二区三区 | 99久久精品国产片久人 | 中国一级性生活片 | 国产精品一级片 | 免费观看国产精品 | 国产91精品久久久久久久 | 久久99精品久久久久久综合 | 久久免费视频8 | 亚洲性久久久影院 | 日本无遮 |