1
奇怪的事情,我不知道哪裏是問題:在JavaScript虛擬機或別的東西......但在這個簡單的程序與CommonJS的遞歸進口
m.js
console.log("main", require("./m1"));
m1.js
var M = require('./m2');
exports.m = {
m2: M.m,
test: "m1"
}
m2.js
var M = require('./m1');
exports.m = {
m1: M.m,
test: "m2"
}
console.log("m2", M);
setTimeout(function() {
console.log("m2 nexttick", M);
}, 0);
我得到一個奇怪的輸出。
m2 {}
main { m: { m2: { m1: undefined, test: 'm2' }, test: 'm1' } }
m2 nexttick { m: { m2: { m1: undefined, test: 'm2' }, test: 'm1' } }
有人可以解釋這一點嗎?爲什麼對象是異步填充的?