lodash debounce funktioniert nicht in anonymer Funktion

Hallo, ich kann nicht herausfinden, warum die Entprellungsfunktion wie erwartet funktioniert, wenn sie direkt an ein Keyup-Ereignis übergeben wird. aber es funktioniert nicht, wenn ich es in eine anonyme Funktion einbinde.

Ich habe Geige des Problems:http://jsfiddle.net/6hg95/1/

EDIT: Hinzugefügt alle Dinge, die ich versucht habe.

HTML

<input id='anonFunction'/>
<input id='noReturnAnonFunction'/>
<input id='exeDebouncedFunc'/>
<input id='function'/>
<div id='output'></div>

JAVASCRIPT

$(document).ready(function(){
    $('#anonFunction').on('keyup', function () {
        return _.debounce(debounceIt, 500, false); //Why does this differ from #function
    });
    $('#noReturnAnonFunction').on('keyup', function () {
        _.debounce(debounceIt, 500, false); //Not being executed
    });
    $('#exeDebouncedFunc').on('keyup', function () {
        _.debounce(debounceIt, 500, false)(); //Executing the debounced function results in wrong behaviour
    });
    $('#function').on('keyup', _.debounce(debounceIt, 500, false)); //This is working.
});

function debounceIt(){
    $('#output').append('debounced');
}

anonFunction&nbsp;undnoReturnAnonFunction&nbsp;löst die Entprellfunktion nicht aus; aber das letztefunction&nbsp;feuert. Ich verstehe nicht, warum das so ist. Kann mir bitte jemand helfen, das zu verstehen?

BEARBEITEN&nbsp;Okay, der Grund dafür, dass das Entprellen in #exeDebouncedFunc (demjenigen, auf den Sie verweisen) nicht auftritt, ist, dass die Funktion im Bereich der anonymen Funktion ausgeführt wird und ein anderes Keyup-Ereignis eine neue Funktion in einem anderen anonymen Bereich erstellt. Dadurch wird die entprellte Funktion so oft ausgelöst, wie Sie etwas eingeben (anstatt einmal auszulösen, was das erwartete Verhalten wäre; siehe unten)#func,tion)?

Können Sie bitte den Unterschied erklären zwischen#anonFunction&nbsp;und das#function. Ist dies wieder eine Frage des Scoping, warum einer von ihnen funktioniert und der andere nicht?

BEARBEITEN&nbsp;Ok, jetzt verstehe ich, warum das passiert. Und hier ist, warum ich es in eine anonyme Funktion einschließen musste:

Geige:http://jsfiddle.net/6hg95/5/

HTML

<input id='anonFunction'/>
<div id='output'></div>

JAVASCRIPT

(function(){
    var debounce = _.debounce(fireServerEvent, 500, false);

    $('#anonFunction').on('keyup', function () {
        //clear textfield
        $('#output').append('clearNotifications<br/>');
        debounce();
    });

    function fireServerEvent(){
        $('#output').append('serverEvent<br/>');
    }
})();