javascript中instanceof运算符的混淆行为
请看下面的代码:javascript中instanceof运算符的混淆行为,javascript,Javascript,请看下面的代码: function Foo () { console.log(this instanceof Foo); return { name: "nitesh" }; } foo = new Foo(); //true console.log(foo instanceof Foo) //false 为什么foo不是foo的实例 为什么this是Foo的一个实例 在Foo函数中,返回一个对象。这就是foo设置的内容。那不是一个Foo对象,它只是一个“普通”对象 试着
function Foo () {
console.log(this instanceof Foo);
return { name: "nitesh" };
}
foo = new Foo(); //true
console.log(foo instanceof Foo) //false
foo
不是foo
的实例this
是Foo
的一个实例在
Foo
函数中,返回一个对象。这就是foo
设置的内容。那不是一个Foo
对象,它只是一个“普通”对象
试着这样做:
function Foo(){
console.log(this instanceof Foo);
this.name = "nitesh";
}
var foo = new Foo(); //true
console.log(foo instanceof Foo) //true
在
Foo
函数中,返回一个对象。这就是foo
设置的内容。那不是一个Foo
对象,它只是一个“普通”对象
试着这样做:
function Foo(){
console.log(this instanceof Foo);
this.name = "nitesh";
}
var foo = new Foo(); //true
console.log(foo instanceof Foo) //true
你基本上是在做
{name:“nitesh”}Foo的instanceof
。你基本上是在做{name:“nitesh”}Foo的instanceof
。谢谢你的解释,但我仍然很困惑这是一个Foo的实例吗?@niteshsharma:这就是new
的工作原理。从:调用构造函数时使用指定的参数,并将“this”绑定到新创建的对象。
感谢您的解释,但我仍然不明白这是Foo的一个实例吗?@niteshsharma:new
就是这样工作的。在:中,使用指定的参数调用构造函数,并将“this”绑定到新创建的对象。