猿问

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

我知道可以Symbol(),不能newSymbol(),但这是怎么实现的呢?
或者说我能否写出这么一个函数:只能简单的函数调用,不能带new,一但加了new就报错
三国纷争
浏览 425回答 2
2回答

SMILET

内部怎么实现的不好说。用纯js也可以实现:functionFoo(){if(this!==window){//如果是node就把window换成globalthrownewError("newisnotpermitted.");}...}newFoo();//报错

倚天杖

functionFoo(){if(thisinstanceofFoo){thrownewError("newisnotpermitted.");}}newFoo();
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答