【问题标题】:Javascript multidimensional object with unexpected properties具有意外属性的 Javascript 多维对象
【发布时间】:2010-01-14 17:58:08
【问题描述】:

在 javascipt 中工作,我正在初始化一个多维对象(它本身嵌套了几个对象深)。但是,当查看子对象的属性时,它有意想不到的属性,第一个是“fromBase64”。使用 IE6 浏览器和 TIBCO GI 框架时会发生这种情况,但该对象独立于任何 GI 特定类。

我不知道这个属性是从哪里来的。有人能解释一下吗?

orderProfiles.product = function(productParameters){
    this.property1 = productParameters['property1'];
    this.property2 = productParameters['property2'];
    ...
    this.childrenProducts = new Object();
};

然后

for (child in window.selectedProducts[contact][product]['childrenProducts']){
    alert("child = " + child);
}

child = fromBase64
child = toBase64
child = constrainLength
child = endsWith
child = urlTo
child = toAbsolute
child = doTruncate
child = escapeHTML
child = doReplace
child = trim
child = fromBase64

【问题讨论】:

    标签: javascript object internet-explorer-6 multidimensional-array


    【解决方案1】:

    使用hasOwnProperty 区分您自己的属性和您从 Object 构造函数(可能已扩展)继承的属性:

    var childrenProd = window.selectedProducts[contact][product].childrenProducts;
    for (child in childrenProd){
      if (childrenProd.hasOwnProperty(child)){
        alert("child = " + child);
      }
    }
    

    【讨论】:

    • 如果之前没有声明孩子,也添加var child
    【解决方案2】:

    这些看起来都是prototype.js 具有扩展对象的方法。尝试删除prototype.js 并从那里获取它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      相关资源
      最近更新 更多