Почему я получил ошибку «Undefined»? - PullRequest
0 голосов
/ 18 апреля 2011

Я определил объект в js-файле:

myobj.js

MyObj={
  test: {
     startTest: function(){
         var x = SOME_PROCESS_A;
         var y = SOME_PROCESS_B;
         return {x: x, y: y};
     }
  }
}

В другом js-файле я вызываю эту функцию объекта:

other.js

var mytest = MyObj.test.startTest
var a = mytest.x;
var b = mytest.y;

my index.html:

<body>
 <script src="myobj.js"></script>
 <script src="other.js"></script>
</body>

Я получил ошибку от firebug в other.js , "mytest" равно неопределено в строке "var a = mytest.x;" Почему ??

Спасибо всем. У меня есть другая "неопределенная" проблема в похожем коде, пожалуйста, проверьте здесь

Ответы [ 3 ]

3 голосов
/ 18 апреля 2011

Вы забыли вызвать функцию:

var mytest = MyObj.test.startTest()
1 голос
/ 18 апреля 2011

Я думаю, что вы хотели сделать

var mytest = MyObj.test.startTest(); //calls the function and returns the value to mytest

, а не

var mytest = MyObj.test.startTest;//assigns the function to mytest
1 голос
/ 18 апреля 2011

, поскольку mytest является функциональным объектом, и в нем не определены свойства.

Вы можете назвать это как

MyObj.test.startTest();

или переписать свой объект что-то вроде:

MyObj={
  test: {
     startTest: function(){
         this.x = SOME_PROCESS_A;
         this.y = SOME_PROCESS_B;
         return {x: this.x, y: this.y};
     }
  }
}
...