在 JScript 5.8 / WSH 中具有 属性 查找的函数名称

Function names with property lookups in JScript 5.8 / WSH

我在查看 Windows 在 JScript 5.8 中运行的脚本宿主代码,我注意到了这个结构:

function String.prototype.foo() { ... }

我找不到任何关于它的文档!我相当确定这在 EcmaScript 中是不合法的,因此它必须是 Microsoft 专用的扩展。有人有解释其设计和语义的任何链接吗?

JScript 团队发布了一份名为 "JScript Deviations from ES3" 的文档 on their blog 草案,其中描述了此语法。

来自第 4.4 节:

JScript permits function names to be qualified. This allows for function foo.prototype() to be syntactic sugar for foo.prototype = function (){} Note that the object on LHS of the '.' must already be defined.

关于 this post from IEBlog 关于 IE9 和 ECMAScript 5 兼容性,他们提到 IE9 标准模式不支持此语法。我想这同样适用于更高版本的 IE。