0
<HTML>
<HEAD>
<TITLE>Example 5.3</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function calculate(form) {
      form.results.value = eval(form.entry.value);
}
function getExpression(form) {
      form.entry.blur();
      form.entry.value = prompt("Please enter a JavaScript mathematical expression","");
      calculate(form);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=POST>
Enter a JavaScript mathematical expression:
<INPUT TYPE=text NAME="entry" VALUE="" onFocus="getExpression(this.form);">
<BR>
The result of this expression is:
<INPUT TYPE=text NAME="results" VALUE="" onFocus="this.blur();">
</FORM>
</BODY>
</HTML> 

上面的代码来自一个 js 教程。

问题:

onFocus="getExpression(this.form);"this这里代表什么?我还以为是window对象,如果是的话,那这行就不能解释了:onFocus="this.blur();",或者都是this输入字段的意思,如果是的话,userstand this.form(input.form)怎么办?我在'this'这里很困惑,谁能给我解释一下?谢谢。

4

3 回答 3

2

onFocus="getExpression(this.form);" ,这在这里代表什么?

this这是您的输入<INPUT TYPE=text NAME="entry"/>

onFocus="this.blur();"

this这是您的输入<INPUT TYPE=text NAME="results"/>

于 2013-06-25T05:54:49.443 回答
2

this意味着它指的是那个特定的形式,那个特定的元素。

示例:是我发布过的最短答案(参考这个问题)

于 2013-06-25T05:55:07.827 回答
0

this 关键字在 JS 环境中是一个棘手的关键字,我会推荐这篇文章,因为它确实帮助我在前段时间理解它。理解 this 关键字

在这种情况下,如果函数没有被 call() 或 apply() 执行,它修改了 this 关键字的行为,它应该代表函数的调用者,在这种情况下是触发事件的输入。

希望这可以帮助 :)

于 2013-06-25T06:34:14.223 回答