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 に答える