我做了一个依赖注入模块。它使用了我发现的带有默认参数的 hack。function (x = SomeDependency) {}. SomeDependency 没有定义,但我可以解析它的 toString(对于类构造函数、箭头函数和简洁的对象方法也是如此)。它并不意味着在浏览器中受支持,仅在 Node.js 中受支持。
我的问题:我找不到任何关于参数是否被懒惰评估的文档,是否存在任何规范/文档?或者这只是未定义的行为?
更新:
我正在做的是使用未定义的默认参数(如上例所示),并解析函数/类的 toString 以找出它们是什么,然后调用函数或使用注入的参数更新类。