应该“父”不能用作javascript变量名(保留字)

时间:2013-10-10 13:54:46

标签: javascript

我经常使用“parent”这个词作为JavaScript变量名,并且从未遇到任何问题。

我最近了解到“父母”可以引用其他内容,例如当用于访问IFrame父级中的元素时,例如parent.document.getElementById("someID")

我是否应该停止使用“parent”作为JavaScript变量名称,并通过我现有的所有脚本进行更改?请注意,http://msdn.microsoft.com/en-us/library/ie/0779sbks%28v=vs.94%29.aspxhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words并不表示我不应该这样做。

3 个答案:

答案 0 :(得分:6)

'parent'不是保留字,而是浏览器执行环境中的全局对象。您是否希望拥有与之相冲突的变量名称是您的决定。

供参考,以下是JS中实际保留字的列表: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words

答案 1 :(得分:5)

如果您的变量被称为parent是有意义的,那么请继续将其命名为,您只需要知道它将隐藏parent的{​​{1}}属性。 object(全局范围),但这不是问题,因为您可以使用window而不是仅仅window.parent在需要使用它的地方显式引用它。

它应该成为问题的唯一时间是,如果有代码与您的parent变量共享范围,该变量试图访问parent而未明确指定他们想要该属性,那可能是指示代码需要调整。

答案 2 :(得分:4)

“JavaScript”与“执行JavaScript的生态系统”不同。

浏览器包含windowdocument引用,其中包含属性... parent。您仍然可以引用全局父级。如果在不同的对象上调用您的父对象,则无论如何都不会发生冲突。