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

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

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

瀏覽:141日期: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ī)制繞開(kāi)這個(gè)問(wèn)題,ES6處理'循環(huán)加載'與CommonJS有本質(zhì)的不同。ES6根本不會(huì)關(guān)心是否發(fā)生了'循環(huán)加載',只是生成一個(gè)指向被加載模塊的引用,需要開(kāi)發(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è)指向被加載模塊的引用,需要開(kāi)發(fā)者自己保證,真正取值的時(shí)候能夠取到值。

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

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

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产精品久久久精品视频 | 成人久久18免费网站游戏 | 色日韩在线 | 欧美一区二区三区在观看 | 成人aaa| 欧美大片一级特黄 | 免费人成在线观看网站 | 免费观看a毛片一区二区不卡 | 日本欧美一级二级三级不卡 | 91久久国产露脸精品 | 韩国一级特黄毛片大 | 日韩在线一区二区三区免费视频 | 在线成人97观看 | 欧美日一级 | 欧美福利一区二区三区 | 久久精品视频在线播放 | 国产成人黄色 | 国产精品青草久久久久福利99 | 特级深夜a级毛片免费观看 特级生活片 | 韩国一级黄色毛片 | 久久精品91| 91欧美精品综合在线观看 | 久久精品视频91 | 久久国产精品久久 | 午夜不卡在线 | 美女网站免费观看视频 | 国产精品日本一区二区不卡视频 | 久久亚洲国产最新网站 | 国产在线观看91精品一区 | 在线播放一区二区精品产 | 国产精品国内免费一区二区三区 | 久久99精品免费视频 | 成人性视频免费网站 | 欧美成人欧美激情欧美风情 | 日本特级黄毛片毛片视频 | 全部免费的毛片视频观看 | 美女张开腿男人桶 | 一级全免费视频播放 | 国产一区二区三区久久小说 | 国产高清久久 | 欧美激情久久久久久久大片 |