繁体   English   中英

Internet Explorer 8 不支持 JavaScript object 和属性

[英]JavaScript object and property not supported in Internet Explorer 8

我创建了一个具有一些属性的 JavaScript object 并将一些值放入其中:

var summaryViewObject[transactionId] = new Object();
summaryViewObject[transactionId].paymentTotal = 0;
summaryViewObject[transactionId].numberOfTransactions = 0;
summaryViewObject[transactionId].returnedPayment = false;

当我们得到像returnedPayment等属性时,它在 IE8 中显示错误,但在 Chrome、IE9 和 Firefox 等其他浏览器中工作正常。

请帮助我了解 JavaScript object 和属性支持。

错误类型错误:无法获取属性“returnedPayment”的值:object 是 null 或未定义

这一行:

var summaryViewObject[transactionId] = new Object();

无效,因为summaryViewObject未定义,您无法在定义它之前在其上创建[transactionId]属性。

尝试这个:

var summaryViewObject = {};
summaryViewObject[transactionId] = {};
summaryViewObject[transactionId].paymentTotal = 0;
summaryViewObject[transactionId].numberOfTransactions = 0;
summaryViewObject[transactionId].returnedPayment = false;

此外, = new Object()= {}; 本质上是一样的。

这应该有效:

var transactionId = 0;
var summaryViewObject = new Array();
summaryViewObject[transactionId] = ({
    paymentTotal: 0,
    numberOfTransactions: 0,
    returnedPayment: true});

//These lines below are here to show you that you can now edit them like so:
summaryViewObject[transactionId].paymentTotal = 0;
summaryViewObject[transactionId].numberOfTransactions = 0;
summaryViewObject[transactionId].returnedPayment = false;

//should alert "false" even though we set it to true in the declaration
alert(summaryViewObject[transactionId].returnedPayment);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM