我创建了一个具有一些属性的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);