can';t使用object方法从自定义javascript对象数组属性获取对象

can';t使用object方法从自定义javascript对象数组属性获取对象,javascript,Javascript,我有一个带有数组属性的javascript类。我在对象上创建了一个方法,用于从该数组返回特定对象。然而,它并没有像我预期的那样工作。我在任何浏览器中都没有收到错误,但当我尝试将其放入JSFIDLE时,我得到一个错误,即 错误: 第5行字符18处出现问题:无法设置未定义的属性“first” 隐含全局:第1页 我不知道这是什么意思,但它指的是这条线 for (var i = 0; i < obj.containerDivs.length; i++) { for(变量i=0;i

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

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

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

for (var i = 0; i < obj.containerDivs.length; i++) {
for(变量i=0;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]);
}
Page=function(){
this.containerDivs=[“div1”、“div2”、“div3”];
this.GetContainerDiv=函数(obj,divId){
对于(变量i=0;i
我在您的脚本中发现的唯一问题是行

if (obj.containerDivs[i] == divId) return d;
其中d是一个未定义的变量。我相信您打算返回divId


将该语句更改为如果(obj.containerDivs[i]==divId)返回divId;this.GetContainerDiv=function(obj,divId){ 对于(变量i=0;i
我注意到的第一件事是
for
循环中返回d
d
声明在哪里?哇,我不知道我怎么会错过它。谢谢!但是,你知道这个错误是怎么回事吗?即使我修复了“d”错误,我仍然得到这个错误-错误:第5行的问题字符18:无法设置未定义的隐含全局:第1页的属性'first'。谢谢。这工作正常,var Page=new Page();var dv=Page.getContainerDiv(Page,“div1”);alert(“dv:+dv”);for(var I=0;I if (obj.containerDivs[i] == divId) return d; // D IS NOT DEFINED } return null; }