1

看看这段代码:

function Foo () {
    console.log(this instanceof Foo);
    return { name: "nitesh" }; 
}

foo = new Foo(); //true 
console.log(foo instanceof Foo) //false
  1. 为什么foo不是一个实例Foo
  2. 为什么是this一个实例Foo
4

1 回答 1

11

在您的Foo函数中,您正在返回一个对象。这就是foo设置。那不是一个Foo物体,它只是一个“正常”的物体。

试试这种方式:

function Foo(){
    console.log(this instanceof Foo);
    this.name = "nitesh";
}

var foo = new Foo(); //true 
console.log(foo instanceof Foo) //true
于 2012-08-09T14:16:54.940 回答