无法在Array上调用声明的原型函数

时间:2017-03-29 13:27:28

标签: javascript arrays prototype

我在数组上有以下原型:

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

有什么帮助可以理解为何会出现这种情况?

0 个答案:

没有答案