实例的构造函数属性(constructor)指向构造函数。
person1.constructor == Person
function Animal(){
this.type = "动物";
}
function Cat(name){
this.name = name;
}
var cat1 = new Cat('猫猫'); //cat1.constructor = Cat
cat1.constructor = new Animal(); //cat1.constuctor = Animal
console.log(cat1) //Cat { name: '猫猫', constructor: Animal { type: '动物' } }
console.log(cat1.constructor === Cat ) //false(第8行已修改)
Son.prototype.construtor = Son
JS 在创建对象(普通对象、函数对象)的时候,该对象都有proto 的内置属性,用于指向创建它的构造函数的原型对象
对象 person1 有一个 proto属性,创建它的构造函数是 Person,构造函数的原型对象是 Person.prototype
person1.proto == Person.prototype
person1.proto == person1的构造函数.prototype
function Animal(){
this.type = "动物";
}
function Cat(name){
this.name = name;
}
Cat.prototype = new Animal(); // (1)
var cat1 = new Cat('猫猫'); // (2) //cat1.constructor = Cat
console.log(cat1.name,cat1.type) //Cat会继承Animal的属性 猫猫 动物
//若交换(1)(2) ,则Cat不会继承animal的属性