我是 Javascript 新手,我正在分析以下代码。我的问题是:对于 setTimeout() 函数,它是如何被调用的?在我看来,它只是被分配给变量 this.timer,而且还没有被调用。但是该功能仍然执行。我错过了什么/不理解什么?非常感谢您提前提供的帮助!
$(document).ready(function () {
var validateUsername = $('#validateUsername');
$('#username').keyup(function () {
var t = this;
if (this.value != this.lastValue) {
if (this.timer) clearTimeout(this.timer);
validateUsername.removeClass('error').html('<img src="images/ajax-loader.gif" height="16" width="16" /> checking availability...');
this.timer = setTimeout(function () {
$.ajax({
url: 'ajax-validation.php',
data: 'action=check_username&username=' + t.value,
dataType: 'json',
type: 'post',
success: function (j) {
validateUsername.html(j.msg);
}
});
}, 200);
this.lastValue = this.value;
}
});
});