我经常使用“parent”这个词作为JavaScript变量名,并且从未遇到任何问题。
我最近了解到“父母”可以引用其他内容,例如当用于访问IFrame父级中的元素时,例如parent.document.getElementById("someID")
。
我是否应该停止使用“parent”作为JavaScript变量名称,并通过我现有的所有脚本进行更改?请注意,http://msdn.microsoft.com/en-us/library/ie/0779sbks%28v=vs.94%29.aspx和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words并不表示我不应该这样做。
答案 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的生态系统”不同。
浏览器包含window
和document
引用,其中包含属性... parent
。您仍然可以引用全局父级。如果在不同的对象上调用您的父对象,则无论如何都不会发生冲突。