ES6规范声明abstract operations不是语言的一部分,但它们在内部使用。其中一些操作,例如CreateHTML看起来通常很有用......是否真的无法访问它们?没有深入的原型hackery来获得这些功能?
答案 0 :(得分:2)
当一个人描述编程语言/ API的语义时,确保一切正确且非模糊是非常重要的。想象一下,您现在正在描述String.prototype.fontcolor(color)
应该如何运作。这是您需要定义的API的一部分,因此您必须严格遵守它并开始列出要求:
现在,如果您对多个函数有重复的要求,那么您可以概括这些要求,并告诉任何正在实施标准的人将要求应用于其他一些函数(例如'要求1和2也适用于{{1 }}“)。您可以使用抽象操作来定义公共API操作,而不仅仅是说“要求1和2也适用于......” '调用RequirementsForStringPrototypeAcceptingOneArgument并退出,如果它返回false',其中 RequirementsForStringPrototypeAcceptingOneArgument 包含req。 1和2。
请注意,这些要求本身不是API的一部分。没有设计,也没有必要 - 只有一种工具可以避免标准中的重复。实现可能真的选择在某个地方使用String.prototype.fontsize
函数,但如果他们认为更好,也可以放一堆CreateHTML
语句。因此,不,没有办法以