我正在查看在 JScript 5.8 中运行的 Windows 脚本宿主代码,我注意到了这个构造:
function String.prototype.foo() { ... }
我找不到任何相关文档!我相当确定这在 EcmaScript 中是不合法的,因此它必须是 Microsoft 独有的扩展。有人有任何解释其设计和语义的链接吗?
最佳答案
JScript团队发布了文档草案on their blog称为“JScript Deviations from ES3”,其中描述了此语法。
来自第 4.4 节:
JScript permits function names to be qualified. This allows for
function foo.prototype()
to be syntactic sugar forfoo.prototype = function (){}
Note that the object on LHS of the '.' must already be defined.
关于this post from IEBlog关于 IE9 和 ECMAScript 5 兼容性,他们提到 IE9 标准模式不支持此语法。我想同样的情况也适用于更高版本的 IE。
关于javascript - JScript 5.8/WSH 中具有属性查找的函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133070/