第 17 题
function f(){
return f;
}
console.log(new f() instanceof f);
解析:
//输出false
用以下几个例子来对比就很清晰了:
function f(){ return f;}
Object.getPrototypeOf(new f()).constructor
//输出 ƒ () { [native code] }
function f() {this.a = 1;return 1}
Object.getPrototypeOf(new f()).constructor
//输出 ƒ f() {this.a = 1;return 1}
function f() {this.a = 1;return {name:"a"}}
Object.getPrototypeOf(new f()).constructor
//输出 ƒ Object() { [native code] }
new
关键字会进行如下的操作:
**{}**
);**this**
的上下文 ;**this**
。摘自 MDN new
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
new并不总是返回实例——如果你return一个非原始值对象
所以new f()返回的是函数f。它的原型当然不是f了