function Box(age) {
this.name = 'ss';
this.age = age;
this.flag = true;
return this;
} //定义一个构造函数
var box1 = new Box(10); // new出一个实例
setTimeout(function () {
box1.flag = false;
console.log(box1.flag);
}, 5000); //五秒钟之后把 实例box1里面的flag变为false.
var inter = setInterval(function () {
if (box1) {
console.log(box1);
if (!box1.flag) {
box1 = null;
var box1 = new Box(20);
}
} else {
console.log('cleared Interval as box1 is null now');
clearInterval(inter);
}
}, 1000); //每一秒种先控制台打印出box1, 如果flag为false, 那么就销毁box1,然后再new出一个box1.
Hasilnya ialah kotak keluaran langsung1 adalah batal.
cleared Interval as box1 is null now
false
Adakah kerana var akan mengisytiharkan pembolehubah tempatan terlebih dahulu, menyebabkan kotak = batal terus selepas pengisytiharan Kemudian kandungan dalam else akan dikeluarkan?
Memandangkan anda mempunyai soalan, adakah anda tidak akan tahu keputusan selepas mengalih keluar var?
Ia sememangnya promosi berubah-ubah, anda juga boleh mengeluarkan kotak1 yang ada dalam pemasa
Hasilnya adalah output dahulu
undefined
bukan batal seperti yang anda fikirkan.sebenarnya bersamaan dengan
Jadi, pemasa telah dicetuskan sejurus selepas mencapai titik, dan mendapati bahawa kotak1 telah diisytiharkan, tetapi tugasan sebenar belum bermula, jadi jika mengambil laluan lain