gpt4 book ai didi

javascript - name 是处理 JavaScript 函数时的一个特殊属性吗

转载 作者:太空宇宙 更新时间:2023-11-04 13:49:49 25 4
gpt4 key购买 nike

<body>
<script type="text/javascript">
function name(firstname)
{
alert("Your firstname: " + firstname);
}
</script>

<form>
<input type="button" value="Do it" onclick="name('aaron')"/>
</form>
</body>

这在 Chrome/IE8 中不起作用。 IE8 状态对象不支持此操作。它与 name 的函数名称有关。如果我将函数的名称更改为 people 它会起作用...有什么好处?

最佳答案

它不是保留字,而且window.name冲突。在 IE 中使用 window 属性名称作为全局变量存在问题,但只要您使用 var 将它们声明为全局变量就没问题> 或 function 关键字,如此处所示。

这里有一个奇怪的——据我所知,未记录的——IE 怪癖(由 WebKit 复制),在通过内联属性声明的事件处理程序中,目标元素的属性被视为局部变量.这大概是您可以编写如下代码:

<input name="foo" value="bar" onclick="alert(name+': '+value)"/>  // foo: bar

因为说 this.name 显然太难了。 IE 再次试图“方便”导致奇怪的不可预测的错误。

这只是不使用内联事件处理程序属性的另一个原因。没有他们:

<input id="doit" type="button" value="Do it"/>

<script type="text/javascript">
document.getElementById('doit').onclick= function() {
name('bob');
};
</script>

工作正常。

关于javascript - name 是处理 JavaScript 函数时的一个特殊属性吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4006323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com