我正在学校做一些练习,要求我评估课堂创作,我给了几个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]
我一直在四处寻找,但是关于如何评估课堂创作的信息并不多。
非常感谢您的帮助。
答案 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,对我来说,这个任务最终是什么并不是很清楚。