繁体   English   中英

为什么方法不是有效的构造函数?

[英]Why are methods not valid constructors?

无论意图如何,我都不清楚为什么一个有效而另一个无效。 如果有人可以指出语言规范的相关部分,那将特别有帮助。

 class Foo { bar() {} } Foo.prototype.baz = function() {}; const f = new Foo(); new f.baz(); // Valid new f.bar(); // invalid, throws error

正如对原始问题的评论所指出的那样,规范以这种方式定义它。 构造函数必须具有内部[[Construct]] s,而普通的 function 表达式确实获得了这个 slot set ,而方法定义却没有 这在 MDN 中也有描述(正如另一位评论者指出的那样)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM