0

我有一个包含 3 个字段的对象:num which int,str which string 和 arr which array。所以我定义它:

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

4

3 回答 3

5

您缺少关键字:

function myfunc(str){
   var str1 = str.split(" ");
   return new myClass(1, str1[0], str1);
}
于 2013-05-10T17:49:15.790 回答
4

你需要return new myClass(...)

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

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

于 2013-05-10T17:49:22.713 回答
-1
function myfunc(str){
   var str1 = str.split(" ");
   return new myClass(1, str1[0], str1);//add new keyword here
}

new 关键字将生成一个对象,关键字this将引用该对象。

于 2013-05-10T17:52:31.740 回答