2013-05-10 150 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 
} 

新关键字会产生一个目的是该关键字将参考。