2012-08-07 2 views
0

개체를 만들었으므로 해당 개체의 변수에 액세스하려고합니다. 하지만 이걸 실행할 때마다, 테스트 해봐.이 변수는 정의되지 않았다. 왜 이런 일이 일어나고 있는지 모르겠습니다.왜 자바 스크립트에서이 변수에 액세스 할 수 없습니까?

/* 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> 

답변

1

FormRowData에는 return 문이없고 생성자 함수로 처리 할 new 키워드를 사용하여 호출하지 않으므로 undefined을 반환합니다.

var testThis = new FormRowData(); 

두 문제를 해결해야 : 당신이 그렇게 생성자 함수로 사용하려는처럼

는 것 같습니다. 당신이 실제로 프로토 타입을 사용하지 않기 때문에

1

VAR의 testThis = 새로운 FormRowData();

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

을 요구하지 않고
관련 문제