【问题标题】:Javascript OOP: Object with Array of ObjectsJavascript OOP:带有对象数组的对象
【发布时间】:2014-03-18 16:15:37
【问题描述】:

我有两个对象。我希望第二个对象包含第一个对象的数组,但没有运气。

例子:

function objectOne(val)
{
    this.a = val;
    this.b = val;
}

function objectTwo()
{
    this.arr = []; //should be an array of object one
    this.loadArray = loadArray;

    function loadArray()
    {
       //right here I am iterating through sharepoint list items
         var obj1 = new objectOne(4, "foo");
         this.arr.push(obj1);
    }
}

var obj2 = new objectTwo();
obj2.loadArray();

我尝试将 objectOnes 加载到 objectTwo 数组中似乎并不重要,它总是返回未定义或空引用。有什么建议吗?

【问题讨论】:

  • 显示您如何尝试使用这两个功能的代码在哪里?
  • 有点难以理解您在问什么,可能是因为您对 JS OOP 的术语有些陌生。这两个函数是构造函数吗?另外,您如何尝试将对象放入数组中?数组中应该有多少个,它们的值应该是什么?
  • 同意 -- 如果我们应该告诉您为什么您尝试的代码不起作用,我们需要查看该代码。
  • 一会儿,我会举一个更好的例子来说明我的意思。

标签: javascript arrays oop


【解决方案1】:

obj2.loadArray(); 返回 undefined,因为在其实现中没有 return 语句。

但是如果你用这个登录控制台:

 console.log(obj2.arr);

控制台应按预期显示[objectOne { a=4, b=4}] 数组。

【讨论】:

  • 我一定有其他事情搞砸了,因为我不断收到“无法获取未定义或空引用的属性‘推送’”
猜你喜欢
  • 1970-01-01
  • 2015-04-27
  • 2017-06-28
  • 2019-03-19
  • 2017-06-24
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
相关资源
最近更新 更多