为什么可以';我不能在javascript中访问这个变量吗?

为什么可以';我不能在javascript中访问这个变量吗?,javascript,Javascript,我创建了一个对象,我想访问该对象中的变量。但是每次我运行这个,testThis和what这个变量都是未定义的。我不知道为什么会这样 /* HTML above */ <script type="text/javascript"> var formData; var dataClickTest; var FormRowData = function () { var self = this; self.someValue =

我创建了一个对象,我想访问该对象中的变量。但是每次我运行这个,testThis和what这个变量都是未定义的。我不知道为什么会这样

/* 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>
上面的
/*HTML*/
var格式数据;
var数据检验;
var FormRowData=函数(){
var self=这个;
self.someValue=“我是可见的。看这里!”;
self.frds=新数组();
self.addRowData=函数(ctrlData){
自我频率推送(ctrlData);
}
self.convertData=函数(rowData){
var hi=rowData[0]。attr('data-ctrltypeid');
var hello=“hi”;
}
}
函数后置部分(div_id){
formData=$('#'+div_id).find('input,select').filter('[name*='.inputeddata']);
var testThis=FormRowData();/*此处出错*/
var whattthis=testThis.someValue;/*此处出错*/
$.ajax({
url:“/TestEdit/Sections”,
键入:“POST”,
数据:formData,
成功:功能(结果){
}
});
返回false;
}

var testThis=newFormRowData()

var testThis=newFormRowData()

FormRowData
没有
return
语句,并且您没有使用将其视为构造函数的
new
关键字调用它,因此它返回
未定义的

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

var testThis = new FormRowData(); 

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

FormRowData
没有
return
语句,并且您没有使用
new
关键字调用它,该关键字会将其视为构造函数,因此它返回
未定义的

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

var testThis = new FormRowData(); 

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

因为您没有实际使用原型,所以您可以完全跳过
新建

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;
}

相当于您的代码,无需
新建

,因为您实际上没有使用原型,所以您可以完全跳过
新建

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;
}
等同于您的代码,无需
新建