如果函数名称是“alt”,我得到错误:“alt 不是一个函数”。所有其他名称都有效。这是代码:
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<input type="button" value="click me" onclick="alt('dato',28);"/>
<script type="text/javascript">
window.onload = function(){
alt = function(name,age){
alert(name + " " + age);
}
}
</script>
</body>
</html>
请将函数名称从“alt”更改为任何其他允许的名称,以查看它是否有效。
谁能解释一下发生了什么?
最佳答案
发生这种情况的原因是在 onclick
内属性,this
指的是附加了属性的元素。现在,alt
是一个标准的属性名称,由于您没有指定 alt
,因此您的按钮将以未设置的形式开始。 HTML 中的属性(alt
不需要 input
属性,因此无需添加)。
简而言之,alt
指的不是全局变量 window.alt
您在脚本中设置的,但指的是元素的 alt
属性,开始时未设置。
所以当你运行 onclick="alt('dato',28);"
,它被隐含地解释为:onclick="this.alt('dato',28);"
.
获取alt
您在全局范围内设置的,而不是 alt
这是每个 HTML 元素的一部分,您需要显式地进入全局范围,如下所示:
onclick="window.alt('dato',28);"
关于JavaScript 函数名 alt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928066/