私はそうのように私のJavascriptのプロトタイプでthis
を使用しよう:Javascriptでこのキーワードをプロトタイプで使用していますか?
Array.prototype.sample = function() {
return this[Math.floor (Math.random() * this.length)];
}
としてだけでなく、私のテストを実施(Jasmine):
describe('sample()', function() {
it('returns a random item of an array', function() {
orig_array = ['foo', 'bar', 'baz', 'qux'];
sampled_word = orig_array.sample();
expect(orig_array).toContain(sampled_word);
});
});
私のテストが失敗しました。これらのメソッドは元々、プロトタイプの中のthis
キーワードを処理するための引数を使用する関数でしたが、小さなJavascriptライブラリにあるため、プロトタイプとして実装したいと考えていました。この文脈でthis
というキーワードが正しいのですか、あるいは私が取得していないプロトタイプにエラーがありますか?ありがとう。
*にReferenceError:配列は –
@CrescentFreshが固定*定義されていませんが、テストはまだ失敗しています。それは言う: 'TypeError:オブジェクトfoo、bar、baz、quxメソッド 'sample''がありません。 – beakr
あなたの質問を修正して、更新されたコードを表示してください。 – kojiro