blog.programfan.info
新网站即将启用

[javascript]js环境污染造成的问题

  今天在测试js的时候发现这样一个奇怪的问题,我用for in函数来实现一个操作时,除了遍历它自有的items外还有其他一些乱七八糟的items,这些item我一直不明白代表什么意思,而且我重试了一下,问题不再重现了,我一直没有放弃查找原因,经过N长时间的查找发现在ubuntu10.04 + Chrome 8.0环境下,当页面有flash插件时就会多了来一些乱七八糟的数据,例:

以下代码是我在chrome开发者环境下输入的代码:

>>var c = [];
undefined
>>for(var i in c){console.dir(c[i]);};
function (obj) {
 for (var i = 0; i < this.length; i++) {
 if (this[i] == obj) {
 return i;
 }
 }
 return -1;
 }
function (obj) {
 return this.indexOf(obj) !== -1;
 }
function (fn, obj){
 for (var i = 0; i < this.length ; i++) {
 fn.call(obj, this[i], i);
 }
 }
undefined
经过我的分析发现,即使数组里面没有数据它也会打印出这些乱七八糟的数据,经过和一些高手讨论,暂时把原因定为flash把js环境给污染了,至于说具体的原因还有待调查,通过这件事,促使我有时间好好研究一下底层js,有时间要好好的看下周爱民的《js语言精髓与编程实践》

posted @ 2010-12-21 18:33  Gordon Chao  Views(551)  Comments(1Edit  收藏  举报
www.programfan.info
新网站即将启用