JavaScript函数close(){}

man*_*ris 3 javascript

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

function close() {...}
Run Code Online (Sandbox Code Playgroud)

并拨打电话

onclick="close()"
Run Code Online (Sandbox Code Playgroud)

但它不会起作用.如果我将函数重命名为any,它可以工作.可能是禁止在名为close()的JS中使用函数吗?

T.J*_*der 5

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


1除了在ES2015和以后,如果你使用letconstclass创建全局.


Nin*_*olz 4

close是 的一种方法window。与 window 中的所有对象一样,您可以在没有前缀的情况下调用它window

console.log(typeof close);
Run Code Online (Sandbox Code Playgroud)