JavaScript /返回函数中的对象

时间:2013-05-10 17:48:10

标签: javascript

我有一个包含3个字段的对象:num表示int,str表示字符串,arr表示哪个数组。所以我定义它:

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对象?

3 个答案:

答案 0 :(得分:5)

您错过了new关键字:

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

答案 1 :(得分:4)

您需要return new myClass(...)

如果没有new关键字,myClass函数就像普通函数一样,不会返回任何内容(因此undefined)。

使用 new关键字,将创建一个新对象并将其作为this传递,并且该对象将成为默认返回值。

答案 2 :(得分:-1)

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

新关键字将生成关键字 this 将引用的对象。