我正在通過一些從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