对象 属性 returns 未定义 (JavaScript)

Object property returns as undefined (JavaScript)

从事 JavaScript 项目。这有点复杂,我知道,但我试图通过查询 Object1 中的关联 属性(如果有意义的话)来基本验证来自 Object2 的信息并对其采取行动...

Object1 = function() {
    this._list = [];
};
Object1.prototype.method1 = function(param) {
     if (param == "foo") { this.method2("foo"); }
};
Object1.prototype.method2 = function(param) {
    for (var i = 0; i < this._list.length; i++) {
        if (this._list[i]._name == param) {
            console.log(this._list[i]._name); // outputs "foo"
            return this._list[i]._name // **TypeError: value is undefined**
        }
    }
};

Object2 = function(name) {
    this._name = name || "foo";
}

var object = new Object1();
var foo = new Object2("foo");
object._list.push(foo);
object.method1("foo");

我知道这有点令人费解。不过我的问题是 returns 'param._name',它给出了 TypeError。但是,在上一行中,当我将它发送到控制台时,结果很好。

我承认我对 JavaScript 有点陌生,对 OOP 更陌生,所以如果这是一个愚蠢或荒谬的问题,请放轻松!

有什么想法吗?感谢所有想法和建议。

谢谢

我在代码中做了同样的修正,试试看:

Object1 = function() {
    this._list = [];
};
Object1.prototype.method1 = function(param) {
     if (param == "foo") { this.method2("foo"); }
};
Object1.prototype.method2 = function(param) {
    for (var i = 0; i < this._list.length; i++) {
        var item = this._list[i];
        if (item._name == param) {
            console.log(item._name); 
            return item._name;
        }
    }
};

Object2 = function(name) {
    this._name = name || "foo";
}

var object = new Object1();
var foo = new Object2("foo");
object._list.push(foo);
object.method1("foo");

对象 1 方法 1 应该是这样的:

Object1.prototype.method1 = function(param) {
    if (param == "foo") { return this.method2("foo"); }
};

注意那里的 return。感谢所有试图回答的人,感谢您的帮助。这 post 从一开始就是一场火车失事 - 我自己的错 - 对此我深表歉意,但我非常感谢你帮助我度过难关的帮助和善意。