jQuery kullanıyorum ve bir olay geri çağrısı olarak işlev gören bir işlev var, ve bu işlevde "bu", olayı yakalayan nesneyi temsil eder. Ancak, işlevi başka bir işlevden açıkça çağırmak istediğim bir örnek var - bu durumda "bu" ifadesinin işlev içinde eşit olacağını nasıl ayarlayabilirim? ÖrneğinJavascript işlevini çağırırken, "bu" özel değerini nasıl ayarlayabilirim?
:
function doStuff(el) {
$(el).removeClass("sad").addClass("happy");
}
function handleEvent(event) {
doStuff(this);
}
$("a.sad").click(handleEvent); // in this case, "this" is the anchor clicked
function differentEvent(event) {
$("input.sad").keydown(e) {
doSomeOtherProcessing();
doStuff(this);
}
}
Alternatif: bir argüman dizisi yerine bir dizi argüman iletmeniz dışında, apply() ile tam olarak aynı olan call() işlevini kullanın. (https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/call) –
apply() ve call() tam olarak aradığım şeydir (her ne kadar yukarıdaki kodun içinde olsa da, e) Çünkü Daniel'in dediği gibi,() bir dizi argüman alır). – Charles
Düzeltme için teşekkürler. Cevabı güncelledim. –