JavaScript 函数名 alt()

标签 javascript html function

如果函数名称是“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/

相关文章:

javascript - 音频对象持续时间不断变化?

javascript - 使用开源包转换为新的类名

c++ - 从 lambda 返回值与声明位于同一行

javascript - Jquery 获取触发事件的实际控件。

javascript - Promise 只解析数组中大约一半的文件

javascript - jade中继承模板的修改

javascript - 尝试使用 jquery 编辑背景图像,解释字符串错误

javascript - 随机颜色 jquery 框

python - 分别循环遍历数据框的每一列

JavaScript 获取有单词的天数,比当前日期提前 5 天