如何让基于eval的JavaScript REPL支持let与const声明?
问题根因
你当前使用的window.eval属于间接eval调用,每次执行时会生成独立的临时词法环境:
var声明的变量会自动挂载到全局window对象,因此后续eval调用可以正常访问let/const属于块级声明,全局作用域下的这类声明只会存储在全局词法环境中,不会挂载到window,而每次window.eval执行结束后临时词法环境会被销毁,因此下一次调用时无法访问之前声明的变量。
可行方案
方案1:动态
相关产品推荐
相关产品推荐

