FireFox和Google Chrome中的不同JavaScript对象文字行为?

Ram*_*ker 3 javascript firefox google-chrome

我已将我的错误缩小到以下一组在Google Chrome中产生不同行为的代码:

示例代码:http://jnvxxx.appspot.com/rpc/static_server?key_ = testjs.html

Firefox输出:Hi 1 [object Object] 192 Hi 2

Chrome输出:Hi 1 [object Object] undefined嗨2

任何想法都可以获得谷歌浏览器中的属性.

谢谢.

Spi*_*man 5

您正在访问该window.status属性,该属性用于控制状态栏中的文本.请参阅:http://www.w3schools.com/jsref/prop_win_status.asp.

显然,必须首先在所有主流浏览器中启用此功能,因此显然不同的浏览器在关闭时会执行不同的操作.Chrome将status属性的值更改为a string,因此它变为隐秘但熟悉的字符串"[object Object]",它没有entry_count属性.Firefox使该对象在该status属性中保持原样.

底线:window.status已经被用于其他事情; 为变量使用不同的名称.

编辑:

如下所述,一个更好的方法是将所有这些封装在功能范围内,只要你不打算在其他地方使用它:

(function() {
   var myStatus = {...};
   // Do something with myStatus, preferably not document.write ;)
}());

var a = typeof myStatus; // a === 'undefined'.
Run Code Online (Sandbox Code Playgroud)

这样,变量只能在函数范围内可见.