0
因此,閱讀和在這本優秀的書的Javascript忍者進步。儘管如此,下面的代碼仍然存在問題,我無法理解爲什麼使用cb.call的情況,以及爲什麼看起來是空的上下文正在通過。我認爲它可能剛剛完成了cb(this [i],i,this),因爲'this'沒有被使用。我在這裏錯過了一個重要的觀點嗎?請幫忙。謝謝。JavaScript忍者書與回調示例
<ul id="results"></ul>
<script>
function assert(val,desc){
var li = document.createElement("li");
li.className = val ? "pass" : "fail";
li.appendChild(document.createTextNode(desc));
document.getElementById("results").appendChild(li);
}
if (!Array.prototype.forEach2) {
Array.prototype.forEach2 = function(cb,context){
for (var i = 0; i < this.length; i++){
cb.call(context ||null, this[i], i, this);
}
};
}
["a,","b","c"].forEach2(function(value,index,array){
assert(value,"Is in position " + index + " out of " + (array.length - 1));
});
assert(true,"this will be green");
assert(false,"this is RED");
</script>
謝謝你,並接受 – user3502374