有没有任何方法可以访问ES6 Javascript中的内部抽象操作



ES6规范规定抽象操作不是语言的一部分,但它们在内部使用。其中一些操作,例如CreateHTML,看起来通常很有用。。。真的没有办法访问它们吗?没有深入的原型技巧来获得这些功能?

当描述编程语言/API的语义时,使一切正确且无歧义是非常重要的。想象一下,现在您正在描述String.prototype.fontcolor(color)应该如何工作。这是你需要定义的API的一部分,所以你必须严格对待它,并开始列出需求:

  1. 如果字符串为空,则
  2. 如果颜色为空,则
  3. 如果颜色不是有效的颜色,那么

现在,如果您对多个功能有重复的需求,那么您可以概括这些需求,并告诉执行该标准的任何人将这些需求应用于其他功能(例如,"String.prototype.fontsize也适用于需求1和2">)。而不是只说"要求1和2也适用于…"您可以使用抽象操作定义公共API操作,例如'Call RequirementsForStringPrototypeAcceptingOneArgument,如果返回false'则退出,其中RequirementsForString PrototypeacceptingOneargument包含req。1和2。

请注意,这些要求本身不是API的一部分。没有设计成这样,也没有必要这样——只有一个工具可以避免标准中的重复。实现可能真的选择在某个地方有一个CreateHTML函数,但如果他们认为更好的话,也可以只放一堆if语句。因此,不,没有办法作为访问这些操作

  1. 实现可能一开始就没有这样的功能
  2. 实现没有理由公开它们
  3. 即使他们确实公开了一些helper内部函数,他们也没有理由用标准中提到的名称公开它,或者让它做与标准中完全相同的事情——这都是实现的内部细节

最新更新