面向对象的思想是——抽象的过程——实例化
小苏这个人,姓名,年龄,性别,吃饭,打招呼,睡觉
自定义构造函数——实例化对象
function Person(name,age,sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.eat = function () {
console.log('吃大蒜拌豆腐加榴莲酱');
};
}
//构造函数——创建对象
var per = new Person('小苏',38,'女');
//per.eat();//吃
关系:
实例对象是通过构造函数来创建的
实例对象会指向它的构造函数(暂时理解,是错误的)

image.png

image.png
//dir把这个对象的结构显示出来
console.dir(per);//实例对象
console.dir(Person);//构造函数
//实例对象的构造器(构造函数)
//实例对象的构造器是指向person,结构是true,所以这个实例的per就是通过Person来创建的
console.log(per.constructor==Person);//true
console.log(per.__proto__.constructor==Person);
console.log(per.__proto__.constructor==Person.prototype.constructor);

image.png
//构造函数
function Animal(name) {
this.name = name;
}
//实例对象
var dog = new Animal('大黄');
console.dir(dog);//实例对象
console.dir(Animal);//构造函数的名字

image.png
//判断这个对象是不是这种数据类型
console.log(dog.constructor==Person);//false
console.log(dog.constructor==Animal);//true
console.log(dog instanceof Person);//false
console.log(dog instanceof Animal);//true
总结:
实例对象和构造函数之间的关系:
1、实例对象是通过构造函数来创建的——创建的过程叫实例化
2、如何判断数据是不是这种数据类型?
1)通过构造器的方式:实例对象.构造器 == 构造数的名字
2)对象 instanceof 构造函数的名字
尽可能使用第二种方式来识别,为什么(讲完原型再说)