js中的new与return

2018年07月07日Web前端

说到js中的new,我们都知道在new构造函数时,如果构造函数中有return时,则会优先返回return的值,那我们来看下实际是否时这样呢。

我也一直以为new是这个逻辑,直到看到这个,

var A = function() {
    return '1111';
}
var a = new A();
a instanceof A;  // true

实际a还是A的一个实例,并不是'1111'这个字符串。

最后,查询发现,当return的是基本变量的时候,并不会使用return的值

所以,

var A = function() {
    return new Number(123);
}
var a = new A(); // 这个a就是123啦

发现js坑好多,不过又消灭了一个。

目录