繁体   English   中英

无法使用object方法从自定义javascript对象数组属性中获取对象

[英]can't get object from custom javascript object array property using object method

我有一个带有数组属性的javascript类。 我在对象上创建了一个方法,以从该数组中返回特定对象。 然而,它没有像我预期的那样工作。 我没有在任何浏览器中出现错误,但是当我尝试将其放入jsfiddle时,我得到了一个错误说法

错误:第5行的问题18:无法设置未定义的属性“first”隐含的全局:第1页

我不知道这意味着什么,但它指的是这条线

for (var i = 0; i < obj.containerDivs.length; i++) {

这是完整的代码。 谁能告诉我我做错了什么? 为什么GetContainerDiv函数不会返回dv,但是后来当我在没有函数的情况下遍历元素时它工作正常。 谢谢。

Page = function() {
    this.containerDivs = ["div1", "div2", "div3"];

    this.GetContainerDiv = function(obj, divId) {
        for (var i = 0; i < obj.containerDivs.length; i++) {
            if (obj.containerDivs[i] == divId) return d;
        }
        return null;
    }
}

var page = new Page();

var dv = page.GetContainerDiv(page, "div1");
console.log(dv);

for (var i = 0; i < page.containerDivs.length; i++) {
    if (page.containerDivs[i] == "div1") console.log(page.containerDivs[i]);
}

我在你的脚本中找到的唯一问题是该行

if (obj.containerDivs[i] == divId) return d;

其中d是未定义的变量。 我相信你打算回归divId

将该语句更改为if(obj.containerDivs [i] == divId)返回divId;

this.GetContainerDiv = function(obj,divId){for(var i = 0; i <obj.containerDivs.length; i ++){

        if (obj.containerDivs[i] == divId) 
                           return d; // D IS NOT DEFINED
    }
    return null;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM