2011-09-05 62 views
0

我得到的错误“buildXML没有定义”当我运行这段代码:的JavaScript/jQuery的:问题调用对象内部的功能(功能未定义)

var c = { 

    updateConsumer:function (cid,aid,sid,survey){ 
    var surveyXML = buildSurveyXML(survey); 
    }, 

    buildSurveyXML: function(survey) { 
    var surveyResults = survey.split("|"); 
    var surveyXML = ''; 

    for (var i=0;i<surveyResults.length;i++){ 
     ... 
    } 

    return surveyXML; 
    } 
} 

这包括这个HTML JS并调用updateConsumer功能:

<!DOCTYPE HTML> 
<html lang="en"> 
    <head> 
     <title>Web Service Test</title> 
     <meta charset="utf-8"> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script> 
     <script type="text/javascript" src="../../shared/js/consumerSoap.js"></script> 
    </head> 

    <body> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       c.insertConsumer("First","Last","55555","[email protected]","76:1139"); 
      }); 
     </script> 
    </body> 
</html> 
+0

在'C'你定义了'updateConsumer'和'buildSurveyXML',但你叫'insertConsumer'在你的脚本块。由此看来,'buildXML'永远不会被调用。这是正确的代码/标记吗? – FishBasketGordo

回答

2

的问题是,updateConsumer不知道什么buildSurveyXML;该函数不在全局范围内。但是,由于您的功能是同一对象的一部分,因此您可以使用this关键字对其进行调用。

updateConsumer:function (cid,aid,sid,survey){ 
    var surveyXML = this.buildSurveyXML(survey); 
} 
0

使用 var surveyXML = c.buildSurveyXML(survey);