Wenn ich versuche this
in meinem Javascript Prototyp zu verwenden wie so:Dieses Schlüsselwort in Javascript mit Prototypen verwenden?
Array.prototype.sample = function() {
return this[Math.floor (Math.random() * this.length)];
}
Neben meinen Tests (Jasmine) implementieren:
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);
});
});
Mein Test nicht bestanden. Diese Methoden waren ursprünglich Funktionen, die Argumente verwenden, um das Schlüsselwort this
innerhalb des Prototyps zu verarbeiten, aber aufgrund der Tatsache, dass dies in einer kleinen Javascript-Bibliothek sein wird, würde ich es lieber als Prototyp implementieren. Ist das this
Schlüsselwort in diesem Kontext korrekt, oder gibt es einen Fehler mit dem Prototyp, den ich nicht bekomme? Vielen Dank.
* Reference: Array ist nicht definiert * –
@CrescentFresh behoben, aber der Test ist immer noch nicht. Es heißt: 'TypeError: Objekt foo, bar, baz, qux hat keine Methode 'sample'. – beakr
Bitte korrigieren Sie Ihre Frage, um den aktualisierten Code anzuzeigen. – kojiro