Function 简化变量.handler=函数{}

Function 简化变量.handler=函数{},function,client-side,javascript,Function,Client Side,Javascript,我正在温习我的JS,我不知道如何确切地问这个问题 我有这个: text_area.onkeyup = function() { var text_length = this.value.length; var text_remaining = text_max - text_length; feed_back.innerHTML = "<strong>" + text_remaining + "</strong> charactres remainin

我正在温习我的JS,我不知道如何确切地问这个问题

我有这个:

text_area.onkeyup = function() {
  var text_length    = this.value.length;
  var text_remaining = text_max - text_length;

  feed_back.innerHTML = "<strong>" + text_remaining + "</strong> charactres remaining";
} 
这在多个项目中从未对我起过作用


应该吗?为什么不呢?

不应该,因为您分配的是函数调用的结果,而不是函数引用。应该是:

text_area.onkeyup = countDown;

不应该这样做,因为您分配的是函数调用的结果,而不是函数引用。应该是:

text_area.onkeyup = countDown;

它不起作用,因为
()
实际上调用了函数——有效地将
text\u area.onkeyup
设置为
倒计时的返回值,而不是函数本身

请尝试以下方法:

text_area.onkeyup = countDown;

它不起作用,因为
()
实际上调用了函数——有效地将
text\u area.onkeyup
设置为
倒计时的返回值,而不是函数本身

请尝试以下方法:

text_area.onkeyup = countDown;
您必须使用:

text_area.onkeyup = countDown;
没有括号

倒计时
是对实际函数对象的引用
倒计时
。它只是一个引用,函数不会被调用或执行

countDown()
实际调用该函数,并对其返回的结果求值。

您必须使用:

text_area.onkeyup = countDown;
没有括号

倒计时
是对实际函数对象的引用
倒计时
。它只是一个引用,函数不会被调用或执行


countDown()
实际上调用该函数,并对其返回的值进行计算。

问题在于您在赋值过程中执行该函数,因此函数的返回值将附加到事件。相反,您应该附加一个参考:

text_area.onkeyup = countDown
或者,如果倒计时有您想要传递的参数,那么您可以使用
函数
确保它们不会丢失。大概是这样的:

text_area.onkeyup = function(){ countDown(paremeter1, paremeter2); }

问题是您在赋值期间执行函数,因此函数的返回值将附加到事件。相反,您应该附加一个参考:

text_area.onkeyup = countDown
或者,如果倒计时有您想要传递的参数,那么您可以使用
函数
确保它们不会丢失。大概是这样的:

text_area.onkeyup = function(){ countDown(paremeter1, paremeter2); }

感谢您指出函数(){…}部分。这非常有用。感谢您指出函数(){…}部分。那真的很有用。