javascript - 无法访问 javascript 对象内部数组元素的对象属性

标签 javascript arrays object

我在一个对象内有一个对象数组。

为什么我会收到下面的错误“无法读取未定义的属性 fname”?我该如何修复它?

另外,我是 JavaScript 新手,希望能得到任何样式或约定建议。

https://jsfiddle.net/go1eu9z6/

function myObj() {
  this.X = [],

    this.haveEntries = function() {
      return this.A.length > 0;
    },

    this.add = function(fname_in, lname_in, city_in) {
      var t = new Date().getTime() / 1000;

      var obj = {
        fname: fname_in,
        lname: lname_in,
        city: city_in,
        t_create: t
      };

      this.X.push(obj);

      return this;
    }
}

var AB = {};
AB.X = new myObj();

AB.X.add("mike", 'smith', 'Toronto');

var s = AB.X[0].fname; // Error:  Cannot read property fname of undefined

document.getElementById('fname').innerHTML = s

最佳答案

您的 JavaScript 代码存在一些问题。首先,您为 AB.X 分配了 new Obj() 的值,而不是简单的 AB。然后,您在 AB.X 上调用 add 方法,而正确的调用只是 AB.add - 请参阅下面的代码示例

  function myObj() {
    this.X = [],

    this.haveEntries = function() {
      return this.A.length > 0;
    },

    this.add = function(fname_in, lname_in, city_in) {
      var t = new Date().getTime() / 1000;

      var obj = {
        fname: fname_in,
        lname: lname_in,
        city: city_in,
        t_create: t
      };

      this.X.push(obj);

      return this;
    }
}

var AB = {};
AB = new myObj();

AB.add("mike", 'smith', 'Toronto');

var s = AB.X[0].fname; 

关于javascript - 无法访问 javascript 对象内部数组元素的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41813175/

相关文章:

C# 访问作为对象类型传递的列表元素

php - 当使用 !(self::$_instance instanceof self) 为什么这不起作用

javascript - 单击图片打开文件上传对话框

javascript - 使用基于值属性的键盘选择选项

javascript - RxJS - forkJoin 何时触发?

javascript - 将谷歌地图的脚本插入html网页

c - 访问 c 中结构中的数组成员是访问值还是地址?

c - Top N 记录排序以仅返回排序数组中特定范围内的数字

Python numpy 性能 - 在非常大的数组上选择

java - 为什么在打印对象时调用 toString() 方法?