<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
代表什么?我认为它是窗口对象,如果是这样,那么就无法解释这一行:onFocus="this.blur();"
,或者两个this
都表示输入字段,如果是,那么如何对用户提出this.form
(input.form )?
我在这里与'this'
感到困惑,有人可以向我解释一下吗?感谢。
答案 0 :(得分:2)
的onfocus = “getExpression(this.form);” ,这在这里代表什么?
this
这是您的输入<INPUT TYPE=text NAME="entry"/>
的onfocus = “this.blur();”
this
这是您的输入<INPUT TYPE=text NAME="results"/>
答案 1 :(得分:2)
this
表示它指的是特定形式和特定元素。
示例:此是我发布的最短答案(参考此问题)
答案 2 :(得分:0)
这个关键字在JS环境中是一个棘手的问题我会推荐这篇文章,因为它确实帮助我在不久前理解它。 Understanding the this keyword
在这种情况下,如果函数没有被call()或apply()执行,这会修改this关键字的行为,它应该代表函数的调用者,在这种情况下是事件被触发的输入。
希望这会有所帮助:)