如何在javascript中评估对象创建

时间:2015-09-03 02:59:45

标签: javascript eval

我正在学校做一些练习,要求我评估课堂创作,我给了几个eval脚本的html。我应该创建javascript文件来生成某些输出。

这是评估者:

 try { 
    var output = eval('peter = new Person("Roger Roger")'); 
  } 
  catch (err) { 
    var output = "[JavaScript Error] " + err.message; 
  } 
 if (output != '[Person "Roger Roger"]') { 
    error = true; 
 }

预期输出应为:

[Person "Roger Roger"]

但我正在

[object Object]

我一直在四处寻找,但是关于如何评估课堂创作的信息并不多。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

当您将eval的返回值强制转换为字符串时,您将获得默认的toString实施。

您需要创建一个Person.prototype.toString方法,以便强制返回您正在寻找的输出,例如,

Person.prototype.toString = function() {
  return "[Person " + this.name + "]";
}

var output = "" + eval('peter = new Person("Roger Roger")');
console.log(output);
> [Person Roger Roger]
OTOH,对我来说,这个任务最终是什么并不是很清楚。