2013-05-10 137 views
0

我有一個包含3個字段的對象:num其中int,str是哪個字符串,arr是哪個數組。所以我定義它:JavaScript /返回函數中的對象

function myClass(num, str, arr) { 
    this.num = num; 
    this.str = str; 
    this.arr =arr; 
} 

現在我有功能,它的返回值是myClass的。此函數獲取字符串:

function myfunc(str){ 
    var str1 = str.split(" "); 
    return myClass(1, str1[0], str1); 
} 

但是當我運行它時,它返回undefine。我如何返回myClass對象?

回答

5

你缺少new關鍵字:

function myfunc(str){ 
    var str1 = str.split(" "); 
    return new myClass(1, str1[0], str1); 
} 
4

您需要returnnewmyClass(...)

沒有new關鍵字,則myClass功能只是就像一個不返回純函數任何東西(因此undefined)。

隨着new關鍵字,一個新的對象將被創建並作爲this過去了,同樣的對象將是默認的返回值。

-1
function myfunc(str){ 
    var str1 = str.split(" "); 
    return new myClass(1, str1[0], str1);//add new keyword here 
} 

新關鍵字會產生一個目的是該關鍵字將參考。