Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析方法并返回结果_Javascript - Fatal编程技术网

Javascript 解析方法并返回结果

Javascript 解析方法并返回结果,javascript,Javascript,在这个场景中,我有一个计算字符串的函数。我的问题是,这种方法不起作用 JSON.stringify()无法stringify方法,所以我在这里使用这个替换函数 不幸的是,当我尝试执行函数时,它是一个字符串 让obj={ 姓名:“Max”, 测试(){ 返回“酷”; } } 函数解析字符串(str,obj){ 让变量=Object.keys(obj.join(“,”); 让strData=JSON.stringify(obj,函数(键,值){ 如果(值的类型==“函数”){ 返回值.toStri

在这个场景中,我有一个计算字符串的函数。我的问题是,这种方法不起作用

JSON.stringify()
无法stringify方法,所以我在这里使用这个替换函数

不幸的是,当我尝试执行函数时,它是一个字符串

让obj={
姓名:“Max”,
测试(){
返回“酷”;
}
}
函数解析字符串(str,obj){
让变量=Object.keys(obj.join(“,”);
让strData=JSON.stringify(obj,函数(键,值){
如果(值的类型==“函数”){
返回值.toString();
}否则{
返回值;
}
});
返回新函数(`let{${variables}}=${strData};return${str};`)。调用(
obj
);
}
log(parseString(“name”,obj))//预期产出:“最大”
log(parseString(“test()”,obj))//预期输出:“酷”
让obj={
姓名:“Max”,
测试(){
返回“酷”;
}
}
函数解析字符串(str,obj){
让变量=Object.keys(obj.join(“,”);
让strData=JSON.stringify(obj,函数(键,值){
如果(值的类型==“函数”){
返回值();
}否则{
返回值;
}
});
返回新函数(`let{${variables}}=${strData};return${str};`)。调用(
obj
);
}
log(parseString(“name”,obj))//预期产出:“最大”
log(parseString(“test”,obj))//预期输出:“酷”
让obj={
姓名:“Max”,
测试(){
返回“酷”;
}
}
函数解析字符串(str,obj){
让变量=Object.keys(obj.join(“,”);
让strData=JSON.stringify(obj,函数(键,值){
如果(值的类型==“函数”){
返回值.toString();
}否则{
返回值;
}
});
返回新函数(`let{${variables}}=${strData};return${str};`)。调用(
obj
);
}
log(parseString(“name”,obj))//预期产出:“最大”

log(parseString(“obj.test()”,obj))//预期输出:“酷”
您非常接近。你刚刚犯了两个小错误。在控制台中调用函数时,只需使用
test
而不是
test()
。另一个是,当值的类型是函数时,您需要将该值作为函数调用,如
value().toString()
,而不是
value.toString()
。代码的其余部分是完美的

让obj={
姓名:“Max”,
测试(){
返回“酷”;
}
}
函数解析字符串(str,obj){
让变量=Object.keys(obj.join(“,”);
让strData=JSON.stringify(obj,函数(键,值){
如果(值的类型==“函数”){
返回值().toString();//将值更改为值()
}否则{
返回值;
}
});
返回新函数(`let{${variables}}=${strData};return${str};`)。调用(
obj
); 
}
log(parseString(“name”,obj))//预期产出:“最大”

log(parseString(“test”,obj));//将test()更改为test
JSON用于纯数据。它是一种独立于语言的序列化格式,将代码放入其中是没有意义的。