Javascript callbacks verlieren 'diese'

Ich einen Aussteller, wo verliere ich das 'das' in diesem 'Objekt'. Die Ausgabe des folgenden javascript-Code gibt mir "einige-id" und dann "undefined". Wenn ich "this" innerhalb einer callback-Funktion, der Anwendungsbereich geht von der Objekt-und es nicht verwenden können, 'dieses' mehr. Wie bekomme ich den Rückruf für die Verwendung von 'dies' oder zumindest Zugriff auf das Objekt?

Da ich mehrere Gegenstände, die ich nicht in der Lage, erstellen Sie eine 'statische' wie Lagerung. Bitte helfen Sie dieses javascript n00b 😉

hier ist mein test-code, den Sie verwenden können, um zu reproduzieren mein problem. Was ich möchte ist CheckBox.doSomething() um den Rückgabewert von this.id die sollten übereinstimmen some-id für diesen Testfall.

function CheckBox(input_id) {
    this.id = input_id;
    this.doSomething();
    $('#some-element').click(this.doSomething);
}

Checkbox.prototype.doSomething = function() {
    alert(this.input_id);
}

var some_box = new CheckBox('some-id');
some_box.doSomething();
$('#some-element').click();

edit: ich kann noch nicht mal das funktioniert, wie ich es will:

function CheckBox2(input_id) {
    this.id = input_id;
    alert(this.id);
}

CheckBox2.prototype.doSomething = function() {
    alert(this.input_id);
}
var some_box = new CheckBox2('some-id');
some_box.doSomething();
InformationsquelleAutor Anyone | 2012-05-26
Schreibe einen Kommentar