在Javascript原型中使用此关键字?
当我尝试在我的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关键字在此上下文中是否正确,或者我没有得到的原型是否存在错误
时,如下所示:
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 )];
}