【问题标题】:return object in js在js中返回对象
【发布时间】:2012-03-30 10:00:30
【问题描述】:

我全局声明一个数组:

var array = new Array;

我为 Element 声明构造函数

function Element(type, format ) {
this.type= type;
this.format = format;
this.returnElement = function() { return this.element; }
}

我想返回数组中的一个参数的值:

function analyse()
{
     for(var i=0, len=array.length; i < len; i++)
     {   
        var a = array[i];
            var b = a.type;
            alert(b);
     }  
 }

}

现在,我想返回对象在 i 处的属性值。

【问题讨论】:

  • 介意发布你得到什么错误? var array 是在哪里定义的?如果在函数内部使用 var 在它前面使其成为局部变量。
  • 几件事:要声明一个新数组,您应该只使用array = ()。第二个 this.element 在您的对象中不存在。第三,你永远不会在循环中使用你的函数。第四,您总是在循环中获取数组的第一个元素。第五,您的数组没有成员。第六,除非您的数组成员包含一个名为type 的参数,否则最后一行将什么也不做。第七,你的循环除了分配一些变量之外什么都不做;它根本不提供任何信息。
  • 您的问题是什么?它不起作用并没有描述你想要做什么。您正在迭代您的数组,并且在该迭代期间您想做什么?你在找什么?找到后要返回什么?
  • @tkone:首先,使用 [] 而不是 ()。其次,this.element 可能是一个原型属性。第四,他没有抓住任何单一的元素。第六:你称这些为“属性”或“键”,而不是“参数”
  • 糟糕。语法错误。漫长的一天。可能是,但他没有表现出来,所以我们不知道。你称它们为属性。我称它们为参数。我的自行车棚是红色的。你的是蓝色的。

标签: javascript object return


【解决方案1】:

不知道你到底想要什么,但有几个错误:

  • Element 不是对象,而是构造函数(当然是 Function 对象,是的)
  • array.slice(0) 清空 array 并返回一个新数组,其中包含从索引 0 开始的所有元素
  • var a = 成为那个新数组,而不是 Element 对象。数组没有属性“类型”

你可能想这样做

 for (var i=0, len=array.length; i < len; i++) {   
        var a = array[0];
        //console.assert(a instanceof Element, "wrong array component detected");
        var b = a.type;
 } 

【讨论】:

    【解决方案2】:

    好的,解决了,这是微不足道的,我很愚蠢。刚刚添加了这几行代码:

    var element = new Element(); 
    element = array[i]; 
    

    它成功了……

    【讨论】:

      猜你喜欢
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多