Javascript:正确的闭包语法和格式
Javascript: Proper closure syntax and formatting
我对JS/jQuery只有一般的经验。我正在尝试解析从IIS检索到的XML对象,下面是一些伪代码,大致描述了我的问题:
//accepts an XML Object
function dataFromAjax(object) {
var x; // this is an int used to ID the object
var y;
var z;
var arr = [];
var __data = this;
var xmlObject = object;
function readDataFromXMLObject() {
__data.x = $(xmlObject).find("X").text();
__data.y = $(xmlObject).find("Y").text();
__data.z = $(xmlObject).find("Z").text();
testArr = $(xmlObject).find("TestArrInfo").text().split(",");
if(testArr[0] != null)
__data.arr.push(testArr[0]);
// ...
}
function storeData() {
sessionStorage.setItem(__data.x, JSON.stringify(__data));
}
readDataFromXMLObject();
storeData();
}
在控制台中,当试图解析arr[]时,它给了我以下错误:
Uncaught TypeError: Cannot read property 'push' of undefined
当我尝试手动输入sessionStorage.getItem(123)
(带和不带引号)时,它也返回null。
为了测试这些值,我尝试了console.log(xmlObject)
和console.log(__data.x)
进行调试,它们工作得很好,分别为我提供了XML对象和x的值。不确定为什么数组不工作或为什么整个对象不保存。如有任何提示,我将不胜感激。
在此范围内,您可以直接访问arr
:
arr.push(testArr[0])
this
上下文可能指向window
对象。window.arr
未定义
阅读关于JS中的this
上下文:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- 货币代码为欧元-金额的格式不应包含小数
- Json数据包含日期和时间格式
- Javascript日期格式类似于ISO,但本地
- 铬:“;未捕获的语法错误:意外的标记:"
- jQuery语法添加了var
- Javascript未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 如何告诉MathJax对下标使用替代语法
- 更改angularjs中的日期-时间格式
- Javascript语法向设置发出sessionStorage值
- 将日期时间从json转换为可读格式
- NodeJS日期格式不起作用
- 任何Java对脚本语言语法的支持,类似于Foobar2000:标题格式参考
- Javascript解释 - 语法/格式/风格对我来说是新的
- JSON格式的Jquery.ajax API请求导致Chrome中的“未捕获语法错误:意外令牌:”
- JQuery头部格式语法(CSS)
- 我的jquery语法和格式有什么问题?
- Javascript:正确的闭包语法和格式