构造函数和实例对象之间的关系

186 阅读1分钟

1 面向对象

面向对象的思想是---抽象的过程--->实例化的过程

<script>
function Person(name,age){
    this.name=name;
    this.age=age;
    this.sayHi=function(){
        console.log("您好");
    }
}
//构造函数---->创建对象
var per = new Person("小明",20);
per.sayHi();
//实例化对象是通过构造函数来创建的
//
console.dir(per); //dir 可以把这个对象的结构给显示出来(输出的是实例对象)
console.dir(Person);//(输出的是构造函数的名字)

//实例对象的构造器(构造函数)
console.log(per.constructor==Person);//true
console.log(per.__proto__.constructor==Person);//true
console.log(per.__proto__.constructor==Person.prototype.construct);//true



var Ainmal = function(name){
    this.name=name;
}
//实例化对象
var dog = new Animal("大黄");
console.dir(Animal); //(输出的是构造函数的名字)
console.dir(dog);//(实例对象)

//判断这个对象是不是这种数据类型
console.log(dog.constructor==Person);//false
console.log(dog.constructor==Animal);//true

console.log(dog instanceof Person);//false
console.log(dog instanceof Animal);//true
</script>

2 总结

2.1 实例对象和构造函数之间的关系:

  • 1.实例对象是通过构造函数来创建的---创建的过程叫做实例化
  • 2.如何判断对象是不是这个数据类型?
  • 1)通过构造器的方式 实例对象,构造器==构造函数的名字
  • 2)对象 instanceof 构造函数名字(尽可能使用第二种方式来进行识别,第一种方式不太准确)