関数コンストラクタから 'a'というオブジェクトを作成すると、 'a'はなぜFunctionのインスタンスではないのですか? 「人:
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var myFather = new person("John", "Doe", 50, "blue");
console.log(myFather instanceof person); //true
console.log(myFather instanceof Object); //true
console.log(myFather instanceof Function); //false
こんにちは、このケースでは、我々は関数コンストラクタからオブジェクトを作成しました。
JavaScriptのすべての関数は、関数コンストラクタのインスタンスです。 myFatherがFunctionのインスタンスではないのはなぜですか?
myFather' 'によって参照されるオブジェクトは、*'人() 'コンストラクタによって作成された*プレーンなオブジェクトですので。 'new'で関数を呼び出すと、新しいオブジェクトが作成され、コンストラクタコンテキストで' this'にバインドされます。 – Pointy
プロトタイプチェーンはmyFather - > person.prototype - > object.prototypeです。 instanceofがそれを確認する –