JavaScript函数close(){}

JavaScript函数close(){},javascript,Javascript,我在JS中创建了一个名为close的函数 function close() {...} 再打一次电话 onclick="close()" 但这行不通。如果我将函数重命名为任何名称,它都可以工作。是否禁止在JS中使用名为close()的函数?为了在onxyz-属性样式的事件处理程序中使用,您的函数必须是全局函数。不要调用全局函数close,因为全局函数成为窗口对象的属性,1并且它有一个名为close的属性(指关闭窗口的宿主函数)。您不允许覆盖该属性,因此它是内置的,最终会被使用。(然后关闭请求

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

function close() {...}
再打一次电话

onclick="close()"

但这行不通。如果我将函数重命名为任何名称,它都可以工作。是否禁止在JS中使用名为close()的函数?

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



1除非在ES2015及更高版本中,如果您使用
let
const
class
创建全局。这是因为在内联事件处理程序所在的全局范围内,已经有一个无法覆盖的函数,并且您正在调用该函数,而不是您自己的名为
close()的函数

关闭
是一种操作方法。和窗口中的所有对象一样,您可以在不使用
window
前缀的情况下调用它


console.log(关闭类型)您将其设置为(function close(){}),它应该是一个必须立即调用的IIFE,如(function close(){}()),如果您将其用于单击功能,我建议将其设置为function close(){}@T.J.Crowder->@adeneo:很好!为什么是社区维基?@LightnessRacesinOrbit:我有时(不总是)会这样做,因为我认为答案已经非常清楚了。。。没有很好的理由。