为了账号安全,请及时绑定邮箱和手机立即绑定

在Javascript中“清楚”是一个保留词吗?

在Javascript中“清楚”是一个保留词吗?

30秒到达战场 2019-06-26 14:46:16
在Javascript中“清楚”是一个保留词吗?我只是花了很长时间才发现不应该使用CLEAR()作为Javascript中函数的名称:<head>     <script type="text/javascript" src="Array.js"></script></head><body>     Hello!!!!<br>     <button type="button" onClick="clear()" id="ppp">Shoo!</button><br>     <button type="button" onClick="add()" id="add">Add a few elements</button><br>     <button type="button" onClick="check()" id="check">Check the array</button><br>     <p id="results">Results will appear here.</p>     <script type="text/javascript">initialize();     </script></body>这里是Array.js:var results;function initialize(){  results = document.getElementById("results");}function add() {results.firstChild.data="add";    }function clear() {results.firstChild.data = "Hello?";}function check() {results.firstChild.data = "check";}症状:点击‘添加’和‘检查’按钮给我的结果,我希望,但点击‘清除’按钮没有任何作用。如果我改名清空()到Clearxyz()它工作得很好。我的问题:“清楚”是个保留词吗?我没在名单上看到:https:/developer.mozilla.org/en/JavaScript/照顾者/保留词将来我是否应该使用调试技巧来解决这类问题呢?我花了很长时间(我是个菜鸟!)找出这个函数的名字是我的问题。非常感谢。编辑:我正在使用Firefox6.0,我添加了一个行中断来显示Array.js的起始位置。
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

就像其他人说的,clear保留关键字。看来被调用的函数是document.clear [MDN]..调用

console.log(clear === document.clear);

在事件处理程序内部返回true.

演示

所以看起来,document在事件处理程序的作用域链中.现在的问题是为什么。

JavaScript:权威指南说:

在作为HTML属性的事件处理程序中,文档对象位于窗口对象(.)之前的作用域链中。

方法是全局的,这意味着它是window对象时,在作用域链中找不到它,如document.clear在作用域链中出现的更早。

我还没有找到这方面的任何规范。指南还说,人们不应该依赖这一点,所以我认为这不是正式的。

如果窗体中有窗体元素,则即使是相应的form元素将位于范围链中(但不确定这是否适用于所有浏览器)。这是造成混乱的另一个原因。


有两种(不是排他性的)方法来避免这种情况:

  • 不要使用内联事件处理程序。它被认为是错误的做法,因为它是混合逻辑和表示。确实有其他 路途要附加事件处理程序,请执行以下操作。

  • 不要污染全局名称空间。在全局范围内创建一个对象(使用您确信不会与任何对象发生冲突的名称)。windowdocument属性或HTML元素的ID),并将函数指定为此对象的属性。无论何时调用函数,都要通过这个对象引用它。也有其他方式来命名您的代码。


查看完整回答
反对 回复 2019-06-26
?
DIEA

TA贡献1820条经验 获得超2个赞

不是按照MDN.

编辑:

你让我好奇,所以我就聚在一起这个小玩意.

function clear() {
    alert("you cleared just fine");}$('clear').addEvent('click', clear);

有一个名为clear似乎运作得很好。


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信