在Google Chrome中"删除"保留的关键字?

ill*_*tim 11 javascript google-chrome reserved-words

我有一个有趣的问题,我认为我已经掌握了它,但我想确定.我有一个调用名为remove()的函数的链接.除Chrome以外的所有浏览器都没有该功能的问题.但是,点击的链接在Chrome中消失了,即使我简化了下面示例中的功能.我见过这个问题:不能在javascript中使用"下载"作为函数名.但是,在链接中,我没有看到任何关于"删除"作为保留关键字的内容.我的问题是,我是关于这个关键字的正确吗?如果是这样,我可以在任何地方找到Google关键字列表吗?我搜索过,并没有发现这是其他地方的问题.

<a href="javascript:void(0)" onclick="remove()">Remove</a>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

function remove(){
 alert("Hi");
}
Run Code Online (Sandbox Code Playgroud)

小智 8

Chrome中的元素有一种.remove()方法可以自行删除元素,而不必从父元素中删除元素.

问题是,当使用属性处理程序时,您将获得不同的范围链.范围链包括元素本身以及document.这意味着元素的所有属性都document显示为变量.

因为你命名了你的函数remove(),并且因为它是一个全局函数/变量,所以它被元素本身的.remove属性(现在变量)所遮蔽.这可以通过警报看到.如果您将处理程序更改为:

onclick="alert(remove)"
Run Code Online (Sandbox Code Playgroud)

......你会得到类似的东西:

function remove() { [native code] }
Run Code Online (Sandbox Code Playgroud)

所以它不是保留的,而是它被用作最终影响全球的财产.


要修复它,请直接使用全局:

onclick="window.remove()"
Run Code Online (Sandbox Code Playgroud)

或者更改功能名称.