猿问

js中为什么Symbol可以函数调用却不能当构造器?

我知道可以Symbol(),不能new Symbol(),但这是怎么实现的呢?

或者说我能否写出这么一个函数:只能简单的函数调用,不能带new,一但加了new就报错


慕仙森
浏览 494回答 2
2回答

慕工程0101907

内部怎么实现的不好说。用纯js也可以实现:function Foo() {    if (this !== window) { // 如果是node就把window换成global         throw new Error("new is not permitted.");     }     ... }new Foo(); // 报错

慕容708150

function Foo() {    if (this instanceof Foo) {                throw new Error("new is not permitted.");     } }new Foo();
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答