我在数组上有以下原型:
Array.prototype.testing = function(cb){
var that = this
function a(i) {
console.log(i)
setTimeout(function() {
if (i+1 >= that.length) {
return cb()
} else {
a(i + 1)
}
}, 1000)
}
a(0)
}
原型在调用Array变量
时效果很好var arr = [1,2,3]
arr.testing(function(){
console.log("Ended")
}) // Prints 1 2 3 Ended to the console
但直接在Array上调用它会抛出一个类型错误:
[1,2,3].testing(function(){
console.log("Ended")
}) // Throws an typeError on [1,2,3], undefined
有什么帮助可以理解为何会出现这种情况?