Javascript-需要函数名中的下划线吗?

Javascript-需要函数名中的下划线吗?,javascript,html,Javascript,Html,我对这段代码没有任何问题,但我很好奇为什么下面的函数名称中似乎需要下划线 function _clear() { document.getElementById("test").innerHTML = ""; } 如果函数名包含下划线,则函数_clear()仅在单击按钮后执行 <button type="submit" onClick="_clear()">Clear</button> 清除 这是因为clear()是JavaScrip

我对这段代码没有任何问题,但我很好奇为什么下面的函数名称中似乎需要下划线

function _clear()
    {
        document.getElementById("test").innerHTML =  "";
    }
如果函数名包含下划线,则函数_clear()仅在单击按钮后执行

<button type="submit" onClick="_clear()">Clear</button>
清除
这是因为
clear()
是JavaScript中已经存在的函数。您还可以将下划线添加到末尾,或添加另一个c或执行任何操作以使函数具有不同的名称。

这是因为
clear()
是JavaScript中已经存在的函数。您还可以将下划线添加到末尾,或添加另一个c或执行任何操作,以使函数具有不同的名称。

根据,clear()是Document对象的一种方法,可以通过编写
Document.clear()
来调用它。但是,由于此方法已被弃用,因此不应该调用它。事实上,在HTML5中,该方法不起任何作用(请参阅)

因此,在实际从文档对象中删除此方法之前,您可能会得出这样的结论:在使用与文档方法同名的用户定义函数时存在潜在冲突。也就是说,使用Google Chrome(版本49.0.2623.112 m),以下代码运行良好:

clear()和document.clear()之间不太可能存在冲突。我编写了一个用户定义的函数,它使用与另一个文档方法相同的名称,代码运行得非常完美;看

显然,当onclick事件属性被赋予用户定义的函数“clear()”时,与clear()关联的
document.clear()
,存在某种混淆;请参阅并阅读官方答案中的精彩解释。简言之,问题归结为“…文档对象位于窗口对象之前的范围链中(…)”(请参阅)

如果出于某种原因,您决定让代码正常工作,以下是如何指定正确的上下文:

HTML:

请参阅。

根据,clear()是Document对象的一种方法,可以通过编写
Document.clear()
来调用它。但是,由于此方法已被弃用,因此不应该调用它。事实上,在HTML5中,该方法不起任何作用(请参阅)

因此,在实际从文档对象中删除此方法之前,您可能会得出这样的结论:在使用与文档方法同名的用户定义函数时存在潜在冲突。也就是说,使用Google Chrome(版本49.0.2623.112 m),以下代码运行良好:

clear()和document.clear()之间不太可能存在冲突。我编写了一个用户定义的函数,它使用与另一个文档方法相同的名称,代码运行得非常完美;看

显然,当onclick事件属性被赋予用户定义的函数“clear()”时,与clear()关联的
document.clear()
,存在某种混淆;请参阅并阅读官方答案中的精彩解释。简言之,问题归结为“…文档对象位于窗口对象之前的范围链中(…)”(请参阅)

如果出于某种原因,您决定让代码正常工作,以下是如何指定正确的上下文:

HTML:


请参阅。

我认为
clear
的可能重复是一个内置功能。因此,您的浏览器尝试调用基本函数,而不是您之前定义的函数。您能否提供一个工作模型,而不是@Chris提到的资源的一点副本,讨论的重点是与用JavaScript封装数据相关的命名约定。我认为
clear
可能是一个内置函数。因此,您的浏览器尝试调用基本函数,而不是您之前定义的函数。您是否可以提供一个工作模型?对于@Chris所提及的资源,您是否可以提供一个丝毫不重复的模型?该讨论的重点是与用JavaScript封装数据相关的命名约定。
var d = document;
d.g = d.getElementById;

function clear()
{
        d.g("test").innerHTML =  "";
    }

var test = d.g("test");
test.onmouseover=clear;
<div id="test">a test to see if this will clear</div>
<button id="but" onclick="window.clear()">Clear</button>
but.addEventListener('click',clear);