JavaScript function close() {}

JavaScript function close() {}

本文关键字:function close JavaScript      更新时间:2023-09-26

我在JS中创建了一个名为close的函数

function close() {...}

和onclick调用

onclick="close()"

,但它不会工作。如果我把函数重命名为任何东西,它都可以工作。可能是禁止在JS中使用名为close()的函数?

为了在onxyz属性样式的事件处理程序中使用,您的函数必须是全局的。不要调用全局函数close,因为全局函数成为window对象的属性,1并且它有一个名为close的属性(指关闭窗口的宿主函数)。你不允许覆盖那个属性,所以最终使用的是内置属性。(然后关闭请求被忽略,有各种原因,窗口可能不允许您通过代码关闭它们。)使用另一个名称(或者更好:使它而不是为全局,并将其与现代事件处理联系起来)。


1除非在ES2015及以后的版本中,如果您使用letconstclass来创建全局。

closewindow的一个方法。像所有来自window的对象一样,你可以不带window前缀来调用它。

console.log(typeof close);

这是因为在全局范围内,内联事件处理程序所在的地方,已经有一个不能被覆盖的window.close函数,并且您正在调用该函数,而不是您自己的名为close()的函数