gpt4 book ai didi

javascript - "remove"是 Google Chrome 中的保留关键字吗?

转载 作者:可可西里 更新时间:2023-11-01 02:23:48 25 4
gpt4 key购买 nike

我有一个有趣的问题,我想我找到了它的根源,但我想确定一下。我有一个调用 remove() 函数的链接。除 Chrome 之外的所有浏览器都没有问题。然而,被点击的链接在 Chrome 中消失了,即使我简化了下面示例中的功能。我看过这个问题:Can't use "download" as a function name in javascript .但是,在链接中,我没有看到任何有关“删除”作为保留关键字的内容。我的问题是,我认为这是关键字是正确的吗?如果是这样,我是否可以在任何地方找到 Google 关键字列表?我已经搜索过,但没有发现这是其他任何地方的问题。

<a href="javascript:void(0)" onclick="remove()">Remove</a>

Javascript:

function remove(){
alert("Hi");
}

最佳答案

Chrome 中的元素有一个 .remove() 方法,该方法允许自行删除元素,而不必从父元素中删除。

问题在于,当使用属性处理程序时,您会得到一个不同的作用域链。该作用域链包括元素本身,以及 document。这意味着元素和 document 的所有属性都显示为变量。

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

onclick="alert(remove)"

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

function remove() { [native code] }

所以它不是保留的,而是用作最终遮蔽全局的属性。


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

onclick="window.remove()"

或者更改函数名称。

关于javascript - "remove"是 Google Chrome 中的保留关键字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16151295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com