2011-04-18 90 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

相關問題