为什么我不能在javascript中访问这个变量

Why can't I access this variable in javascript?

本文关键字:访问 变量 javascript 不能 为什么      更新时间:2023-09-26

我创建了一个对象,我想访问该对象中的变量。但是每次我运行这个时,测试这个和什么这个变量是未定义的。我不确定为什么会发生这种情况。

/* 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>
FormRowData没有

return语句,并且您不会使用 new 关键字调用它,该关键字会将其视为构造函数,因此它返回 undefined

看起来您打算将其用作构造函数,因此:

var testThis = new FormRowData(); 

这应该可以解决这两个问题。

var testThis = new FormRowData();

由于您实际上并没有使用原型,因此您可以完全跳过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