首先明确new的机制

  1. 构造函数如果没有return,就是你理解的那种new,创建一个对象,并把proto指向这个构造函数的prototype
  2. 构造函数如果return了,那么new的结果直接为这个return值。构造函数不会为这个return值设置原型链相关的东西

其次,明确instanceof的判断机制:对于a instanceof b

那么回到题目。test构造函数return了一个值,所以其走的是new机制的第二条,并不会为其设置原型链。也就是说,new test()的返回值的原型链,并不会指向test.prototype。根据instanceof的机制,返回结果为false