JS高级----------------->构造函数跟实例对象之间的关系
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> //自定义构造函数-----------实例化对象 function Person(name, age, sex) { this.name = name; this.age = age; this.sex = sex; this.eat = function () { console.log("吃大蒜拌臭豆腐加榴莲酱"); }; } //构造函数--------->创建对象 var per = new Person("小红", 18, "女"); per.eat(); //实例对象是通过构造函数来创建 //实例对象会指向自己的构造函数 //显示这个对象的结构 console.dir(per); console.dir(Person); //实例对象的构造器(构造函数) //实例对象的构造器是指向Person的,结果是true,所以,这个实例对象per就是通过Person来创建的 console.log(per.constructor == Person); console.log(per.__proto__.constructor == Person); console.log(per.__proto__.constructor == Person.prototype.constructor); //构造函数 function Animal(name) { this.name = name; } //实例对象 var dog = new Animal("大黄"); console.dir(dog); console.dir(Animal); console.log(dog.__proto__.constructor==Person); console.log(dog.__proto__.constructor==Animal); //判断这个对象是不是这种数据类型 console.log(dog.constructor==Animal); console.log(dog instanceof Person); //总结: /* * 实例对象和构造函数之间的关系: * 1. 实例对象是通过构造函数来创建的---创建的过程叫实例化 * 2.如何判断对象是不是这个数据类型? * 1) 通过构造器的方式 实例对象.构造器==构造函数名字 * 2) 对象 instanceof 构造函数名字 * 尽可能的使用第二种方式来识别,为什么?原型讲完再说 * */ </script> </body> </html>