我有一个包含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
对象?
答案 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 将引用的对象。