在Javascript原型中使用此关键字?

在Javascript原型中使用此关键字?,javascript,this,prototype,jasmine,Javascript,This,Prototype,Jasmine,当我尝试在我的Javascript原型中使用时,如下所示: Array.prototype.sample = function() { return this[Math.floor (Math.random() * this.length )]; } 以及实现我的测试(): 我的考试失败了。这些方法最初是使用参数来处理原型内部的this关键字的函数,但由于这将在一个小的Javascript库中,因此我宁愿将其作为原型实现。this关键字在此上下文中是否正确,或者我没有得到的原型是否存在错误

当我尝试在我的Javascript原型中使用
时,如下所示:

Array.prototype.sample = function() {
  return this[Math.floor (Math.random() * this.length )];
}
以及实现我的测试():


我的考试失败了。这些方法最初是使用参数来处理原型内部的
this
关键字的函数,但由于这将在一个小的Javascript库中,因此我宁愿将其作为原型实现。
this
关键字在此上下文中是否正确,或者我没有得到的原型是否存在错误?谢谢。

问题出在代码的这一部分

Array.prototype.sample = function() {
   return this[Math.floor (Math.random() * array.length )];
}
没有定义简单的“数组”。应该起作用的代码是

Array.prototype.sample = function() {
   return this[Math.floor (Math.random() * this.length )];
}

ReferenceError:数组不可用defined@CrescentFresh已修复,但测试仍然失败。它显示:
TypeError:Object foo、bar、baz、qux没有方法“sample”
。请修复您的问题以显示更新的代码。问题已解决,以前的一些代码中的多个错误位于同一文件中。现在应该很快恢复。谢谢你的帮助。
Array.prototype.sample = function() {
   return this[Math.floor (Math.random() * this.length )];
}