如何评估 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,我不太清楚最终的任务是什么。