var fade = function(node) { var level = 1; var step = function () { var hex = level.toString(16);
node.style.backgroundColor = '#FFF' + hex + hex; if (level < 15) {
level += 1;
setTimeout(step, 100);
}
}
setTimeout(step, 100);
};
fade(document.body);1、 怎么理解 內部函數擁有比它的外部函數更長的生命周期 這句話2、 在這個函數中的兩次setTimeout();第一次的setTimeout是用來持續執行的。那么第二次的setTimeouts僅僅只是為了在0.1秒后調用step的嗎?難道不可以直接調用step()嘛?3、 為什么瀏覽器中Body顏色沒有變換?我試著換了別的元素,把bacgroundColor換成bacgroundcolor,或者用jquery,發現都不想。但是console.log()還是能打印出顏色變化的。這是為森馬?
關于《javascript語言精粹》中P38閉包:改變Body顏色的例子沒有在瀏覽器生效
萬千封印
2018-08-30 14:13:34
