六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 28|回复: 0

ecshop ajax

[复制链接]

升级  94.67%

54

主题

54

主题

54

主题

秀才

Rank: 2

积分
192
 楼主| 发表于 2013-1-29 09:35:54 | 显示全部楼层 |阅读模式
原因就是json.js定义了 Object.prototype.toJSONString
于是 regions.province也就有了这个东西,于是 for (var k in )时,会有一个toJSONString的k
var k in ...这个语法会把所有自己定义的东西都遍历出来,包括prototype里的,只有javascript自己定义的东西不会遍历出来

比较好的解决办法就是修改json.js
改成Object.toJSONString,不要prototype
abc.toJSONString改成 Object.toJSONString(abc)
不要给Object.prototype加任何东西,这是一个好习惯

另一个简单办法就是:
for (var k in regions.provinces)
  if (regions.provinces.hasOwnProperty(k))
    alert(...)
判断hasOwnProperty就将prototype中的都排除掉了
但是如果regions.provinces是某个自定义类的对象,希望自定义的prototype里的东西要遍历,这样就不行了
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表