一尘不染

JavaScript使用变量“ name”不适用于JS对象

javascript

可以在以下小片段中看到该行为(将其作为全局脚本执行):

var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);

该警报undefined在Chrome中产生,但在IE和Firefox中有效。当我这样做时,我也会得到一个怪异的价值

alert(name);

阅读 342

收藏
2020-04-23

共1个答案

一尘不染

window.name具有特殊用途,应该是字符串。Chrome似乎已将其显式转换为字符串,因此var name = {};实际上最终为全局变量name(即window.name)提供了值"[object Object]"。由于它是原始元素,因此属性(name.FirstName)不会“粘滞”。

要解决此问题,请不要将其name用作全局变量。

2020-04-23