JavaScript /返回函数中的对象
问题描述:
我有一个包含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
对象?
答
你缺少new关键字:
function myfunc(str){
var str1 = str.split(" ");
return new myClass(1, str1[0], str1);
}
答
您需要return
new
myClass(...)
没有new
关键字,则myClass
功能只是就像一个不返回纯函数任何东西(因此undefined
)。
随着的new
关键字,一个新的对象将被创建并作为this
过去了,同样的对象将是默认的返回值。
答
function myfunc(str){
var str1 = str.split(" ");
return new myClass(1, str1[0], str1);//add new keyword here
}
新关键字会产生一个目的是该关键字此将参考。