0

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

这是我将传入对象的位置(在 DOM 中):

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

然后创建一个空数组,并将依赖项对象中的每个项目推入其中。然后我想在我的脚本中进一步循环遍历这个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]);
 }

提前致谢。

4

2 回答 2

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/

于 2013-08-29T11:02:50.020 回答
0

您必须实际调用该函数。将此添加到 console.log 之前:

App.config();

您所做的只是声明函数并将其分配给变量。

于 2013-08-29T10:54:35.530 回答