我正在通过一些从MSDN网站的Windows 8教程工作。具体来说,我在this one。Windows 8 Javascript疯狂 - 变量undefined
部分我的代码(从教程复制吹我的心为什么它的示数下面的示例:
(function() {
"use strict";
var list = getBlogPosts();
var groupedItems = list.createGrouped(
function groupKeySelector(item) { return item.group.key; },
function groupDataSelector(item) { return item.group; }
);
var dataPromises = [];
var blogs;
var blogPosts = new WinJS.Binding.List();
function getFeeds() {
blogs = [
{
key: "blog1",
url: 'http://windowsteamblog.com/windows/b/developers/atom.aspx',
title: 'tbd', updated: 'tbd',
acquireSyndication: acquireSyndication, dataPromise: null
},
// lots more entries ...
];
blogs.forEach(function (feed) {
feed.dataPromise = feed.acquireSyndication(feed.url);
dataPromises.push(feed.dataPromise);
});
return WinJS.Promise.join(dataPromises).then(function() { return blogs });
}
// more code...
})();
在生产线dataPromises.push(feed.dataPromise);
我得到的错误JavaScript runtime error: Unable to get property 'push' of undefined or null reference
你可以看到dataPromises
定义和初始化为。一个空的数组靠近文件顶部(我也试着用new Array();
初始化它)
我在做什么错在这里???我猜我已经做了一些愚蠢的事情......顺便说一句,在上面的代码片段中出现的dataPromises
这3个地方是只有的地方出现在项目的任何地方。
我的第一个想法是提升,但除非有什么神奇的事情发生,我没有在可能覆盖顶部函数作用域的任何本地作用域中明确声明dataPromises
。
@nalply他正在使用Internet Explorer ** 10 **。 – Pointy 2012-08-15 20:58:43
哪里是'acquireSyndication'定义? – epascarello 2012-08-15 20:59:32
您是否尝试更改变量的名称?也许'dataPromises'被其他地方覆盖? – jbabey 2012-08-15 21:05:04