JavaScript中实例对象和构造函数之间的关系是什么?
1.实例对象通过构造函数来创建——创建的过程叫实例化
2.如何判断一个对象是不是这个数据类型?
1) 对象 instanceof 构造函数名字
2)通过构造器的方式 实例对象.构造器==构造函数的名字
我们在判断的时候尽量选用第一种方法,因为第二种方法中一个对象的构造器指向的可能不是自己的构造函数,可能指向的是object
样例:
function Person(name) {
this.name = name
}
function Animal(name) {
this.name = name;
}
var dog = new Animal("大黄")
//判断这个对象是不是这种数据类型
//1.通过构造器判断
console.log(dog.__proto__.constructor == Person) //false
console.log(dog.__proto__.constructor == Animal) //true
//和上面是同一种方法,写法不同
console.log(dog.constructor== Person) //false
console.log(dog.constructor == Animal) //true
//2.通过prototype 属性判断
console.log(dog instanceof Person) //false
console.log(dog instanceof Animal) //true