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);