<分区>
我在 JS 中创建了一个名为 close 的函数
function close() {...}
并有一个onclick调用
onclick="close()"
但它不会起作用。如果我将该函数重命名为任何名称,它就可以工作。难道是JS中禁止使用名为close()的函数?
标签 javascript
<分区>
我在 JS 中创建了一个名为 close 的函数
function close() {...}
并有一个onclick调用
onclick="close()"
但它不会起作用。如果我将该函数重命名为任何名称,它就可以工作。难道是JS中禁止使用名为close()的函数?
最佳答案
为了在 onxyz
属性样式的事件处理程序中使用,您的函数必须是全局的。不要调用全局函数 close
,因为全局变量成为 window
对象的属性,1 并且它有一个名为 close 的属性
(指的是关闭窗口的宿主函数)。您不能覆盖该属性,因此它是最终被使用的内置属性。 (然后关闭请求被忽略,有多种原因 Windows 可能不允许您通过代码关闭它们。)使用另一个名称(或更好:使其不是全局并将其连接到现代事件处理)。
1 除非在 ES2015 及更高版本中使用 let
或 const
或 class
创建全局。
关于JavaScript 函数关闭(){},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40450783/