2011-04-18 86 views
0

我在一个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> 

我从萤火误差在other.js, “mytest” 是undfined在行 “var a = mytest.x;为什么?

谢谢大家。我得到了类似的代码中的另一个“不确定”的问题,请here

+1

您应该像使用函数一样使用它:var mytest = MyObj.test.startTest() – 2011-04-18 07:43:25

回答

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 
+0

谢谢。但我得到了另一个未定义的错误,在这里http://stackoverflow.com/questions/5700054/variable-is-not-defined-error-why – Mellon 2011-04-18 08:02:51

+0

@梅隆,你不应该发布一个新的问题。它可能会被重复关闭。更新这个问题 – JohnP 2011-04-18 08:03:54

3

你已经忘了打电话的功能:

var mytest = MyObj.test.startTest() 
1

becouse 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}; 
    } 
    } 
} 
+0

*“becouse mytest是一个函数对象,它没有属性”*函数具有属性,您甚至可以添加自己的属性。具体来说,在这种情况下,这个特殊的函数没有'x'和'y'属性。 – 2011-04-18 07:48:36

+0

是的,我的意思是这个特殊的功能。我会纠正我的答案,谢谢;) – Headshota 2011-04-18 07:56:25

+0

谢谢,但我得到了另一个未定义的错误,在这里:http://stackoverflow.com/questions/5700054/variable-is-not-defined-error-why – Mellon 2011-04-18 08:03:28

相关问题