我正在努力制作一个自定义的Javascript类系统,我现在有兴趣在控制台/ devtools中很好地识别我的对象实例,如this previous question of mine中所述。到目前为止,我得到的印象是,实现我想要的唯一方法是使用eval创建命名函数,如this other question中所述。
如果我使用eval创建我的课程,是否会有任何权衡取舍?我并不担心eval本身是缓慢的 1 或关于security 2 但是我听说使用eval可能会禁用其余代码的JIT编译。这是真的?如果是,会影响哪些代码?只是带有eval的功能?该函数及其所有父函数?整个模块?我可以采取哪些步骤来确保eval尽可能少地影响我的代码?
1 我只需要在脚本开头使用eval进行一些元编程。它不会在性能关键循环中运行。
2 我永远不会用用户输入调用eval,在我的情况下,我甚至可以使用正则表达式检查输入字符串是否是有效的标识符/函数名。