我创建了一个对象,我想访问该对象中的变量。但每次我运行它,testThis和whatThis变量是未定义的。我不确定为什么会这样。
/* HTML above */
<script type="text/javascript">
var formData;
var dataClickTest;
var FormRowData = function () {
var self = this;
self.someValue = "I am visible. Look Here!";
self.frds = new Array();
self.addRowData = function (ctrlData) {
self.frds.push(ctrlData);
}
self.convertData = function (rowData) {
var hi = rowData[0].attr('data-ctrltypeid');
var hello = "hi";
}
}
function postBackPart(div_id) {
formData = $('#' + div_id).find('input, select').filter('[name*=".InputtedData"]');
var testThis = FormRowData(); /* error here */
var whatThis = testThis.someValue; /* error here */
$.ajax({
url: '/TestEdit/Sections',
type: 'POST',
data: formData,
success: function (result) {
}
});
return false;
}
</script>
</body>
</html>
答案 0 :(得分:1)
var testThis = new FormRowData();
答案 1 :(得分:1)
FormRowData
没有return
语句,并且您没有使用new
关键字将其视为构造函数,因此它返回undefined
。
看起来你打算将它用作构造函数,所以:
var testThis = new FormRowData();
这应解决这两个问题。
答案 2 :(得分:1)
由于您实际上并未使用原型,因此可以完全跳过new
:
var FormRowData = function () {
var self = {};
self.someValue = "I am visible. Look Here!";
self.frds = new Array();
self.addRowData = function (ctrlData) {
self.frds.push(ctrlData);
}
self.convertData = function (rowData) {
var hi = rowData[0].attr('data-ctrltypeid');
var hello = "hi";
}
return self;
}
等同于您的代码而不需要new