如何评估 javascript 中的对象创建
How to eval an object creation in javascript
我正在做一些学校的练习,要求我评估 class 创作,我得到了 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]
我一直在四处寻找,但没有太多关于如何评估 class 创作的信息。
非常感谢您的帮助。
当您将 eval
的 return 值强制转换为字符串时,您将获得默认的 toString
实现。
您需要创建一个 Person.prototype.toString
方法,以便强制 return 输出您正在寻找的结果,例如,
Person.prototype.toString = function() {
return "[Person " + this.name + "]";
}
var output = "" + eval('peter = new Person("Roger Roger")');
console.log(output);
> [Person Roger Roger]
OTOH,我不太清楚最终的任务是什么。
我正在做一些学校的练习,要求我评估 class 创作,我得到了 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]
我一直在四处寻找,但没有太多关于如何评估 class 创作的信息。
非常感谢您的帮助。
当您将 eval
的 return 值强制转换为字符串时,您将获得默认的 toString
实现。
您需要创建一个 Person.prototype.toString
方法,以便强制 return 输出您正在寻找的结果,例如,
Person.prototype.toString = function() {
return "[Person " + this.name + "]";
}
var output = "" + eval('peter = new Person("Roger Roger")');
console.log(output);
> [Person Roger Roger]
OTOH,我不太清楚最终的任务是什么。