Internet Explorer 8不支持JavaScript对象和属性

JavaScript object and property not supported in Internet Explorer 8

本文关键字:对象 属性 JavaScript 不支持 Explorer Internet      更新时间:2023-09-26

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

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

当我们获得returnedPayment等属性时,它在IE8中显示错误,但在Chrome、IE9和Firefox等其他浏览器中运行良好。

请帮助我理解JavaScript对象和属性支持。

错误类型错误:无法获取属性"returnedPayment"的值:对象为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);