Javascript 为什么不';t';这';关键字在使用参数的事件处理程序函数上工作? var x=document.getElementById('id'); x、 addEventListener('单击',函数()){ 检查(x,5); },假); 功能检查(x,长度){ var msg=document.getElementById('id'); 如果(this.value.length
Javascript 为什么不';t';这';关键字在使用参数的事件处理程序函数上工作? var x=document.getElementById('id'); x、 addEventListener('单击',函数()){ 检查(x,5); },假); 功能检查(x,长度){ var msg=document.getElementById('id'); 如果(this.value.length,javascript,this,dom-events,Javascript,This,Dom Events,if(x.value.length
if(x.value.length
。我不完全理解如何实现this
关键字。内部检查将指向窗口。您必须通过将此
绑定到函数中来检查
,以完成任务
var x = document.getElementById('id');
x.addEventListener('click', function() {
check(x, 5);
}, false);
function check(x, length) {
var msg = document.getElementById('ids');
if (this.value.length < length) { //doesn't work
msg.innerHTML = 'not long enough'
}
}
此
内部检查将指向窗口
。您必须通过将此
绑定到函数中来检查
,以完成任务
var x = document.getElementById('id');
x.addEventListener('click', function() {
check(x, 5);
}, false);
function check(x, length) {
var msg = document.getElementById('ids');
if (this.value.length < length) { //doesn't work
msg.innerHTML = 'not long enough'
}
}
除非检查
功能代码处于严格模式,否则在这种情况下此
将是未定义的
@AlexanderO'Mara您所说的检查
内部的此
。对吗?是的,没错。这将不是窗口
,而是未定义
-在严格模式中是的,我指的是检查
功能。除非检查
功能代码处于严格模式,在这种情况下此
将是未定义的
@AlexanderO'Mara您指的是检查
内部的此
。对吗?是的,没错。这将不是窗口
,而是未定义
-在严格意义上,我指的是检查
函数。此
仅在作为事件处理程序的函数中“起作用”,在您的案例中是匿名函数,而不是检查
此
仅在作为事件处理程序的函数中“起作用”,在您的案例中是匿名函数,不检查
。