在脚本中无法访问推送到空数组的对象

时间:2013-08-29 10:52:13

标签: javascript

不知道我在这里做错了什么,但我试图访问我脚本中其他地方的数组中的项目。

这是我传入对象(在DOM中)的地方:

App.config({
    dependencies: {
        'html5shiv' : 'http://html5shiv.googlecode.com/svn/trunk/html5.js',
        'respondjs' : 'http://respondjs.googlecode.com/svn/trunk/respond.js'
    }
});

然后创建一个空数组,并将dependencies对象中的每个项目都推入其中。然后我想在我的脚本中进一步遍历这个 deps 数组,但它实际上在控制台上打印 [] 为空,除非我在 for in 循环。任何人都可以建议我如何在其他地方访问这些项目?

var deps = [];

App.config = function (obj) {
    for (var key in obj.dependencies) {
        deps.push(key);
    }
};

console.log(deps);

理想情况下我想做,这是一个http://jsfiddle.net/WJh4E/

 for (var i = 0; i < deps.length; i++) {
    console.log(deps[i]);
 }

提前致谢。

2 个答案:

答案 0 :(得分:0)

你必须实际调用该函数。在console.log之前添加它:

App.config();

你在那里所做的只是声明函数并将其分配给变量。

答案 1 :(得分:0)

首先,您必须声明并实例化App

请在下面看到以下代码:

var deps = [];
var App= new Object();
App.config = function (obj) {
    for (var key in obj.dependencies) {
        deps.push(key);
    }
};

App.config({
    dependencies: {
        'html5shiv' : 'http://html5shiv.googlecode.com/svn/trunk/html5.js',
        'respondjs' : 'http://respondjs.googlecode.com/svn/trunk/respond.js'
    }
});



console.log("deps::"+deps);

for (var i = 0; i < deps.length; i++) {
    console.log("deps[i]::"+deps[i]);
 }

请在此处查看工作小提琴:http://jsfiddle.net/9xUk4/