为什么我收到“未定义”错误?

时间:2011-04-18 07:36:58

标签: javascript javascript-events javascript-framework

我在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;

我的index.html:

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

我在 other.js 中遇到了来自firebug的错误,“mytest”在“var a = mytest.x;”行中是未定义为什么?

谢谢大家。我在类似的代码中遇到了另一个“未定义”问题,请检查here

3 个答案:

答案 0 :(得分:3)

您忘记调用该函数:

var mytest = MyObj.test.startTest()

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我认为你打算这样做

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

而不是

var mytest = MyObj.test.startTest;//assigns the function to mytest