throw Error('msg') vs throw new Error('msg')
2022-08-30 01:04:13
var err1 = Error('message');
var err2 = new Error('message');
有什么区别?在Chrome控制台中查看它们,它们看起来是一样的。对象上的相同属性和同一链。几乎看起来像一个工厂。__proto__
Error
哪一个是正确的,为什么?
var err1 = Error('message');
var err2 = new Error('message');
有什么区别?在Chrome控制台中查看它们,它们看起来是一样的。对象上的相同属性和同一链。几乎看起来像一个工厂。__proto__
Error
哪一个是正确的,为什么?
Error
确实像工厂一样,像其他一些本机构造函数一样:,,等都检查类似的东西。(但请注意,和 非常不同,对于 和 也是如此。Array
Object
if (!(this instanceof Array)) { return new Array(arguments); }
String(x)
new String(x)
Number
Boolean
也就是说,如果发生错误,甚至不需要抛出一个对象...... 也可以工作
您甚至可以抛出一个对象文本进行调试:Error
throw 'Bad things happened';
throw {message:"You've been a naughty boy",
context: this,
args: arguments,
more:'More custom info here'};