为什么'this'关键字不能用于使用参数的事件处理函数?

时间:2016-04-05 20:27:03

标签: javascript javascript-events 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'
  }
}

if(x.value.length< length)有效。我不完全了解如何实施this关键字。

1 个答案:

答案 0 :(得分:3)

this内部检查将指向window。您必须callcheck绑定到this函数中才能完成任务,

  x.addEventListener('click',function(){
    check.call(this, x,5);
  }, false);