js原型,原型链,instanceof
js原型,原型链,instanceof
一.类型判断 instanceof
(把上一篇文章的zby都看成xialuo)
xialuo(zby)是Student 类的一个实例
Student继承People
People默认继承Object
若是不明白原理,可以继续往下看,其实与原型原型链有关
二.原型
xialuo__proto__为隐式原型
Student. prototype 为显式原型
原型关系
基于原型的执行规则
三.原型链
Student类继承People类,可以理解为student=new people,所以student的隐式原型指向people的显式原型
当执行代码xialuo.eat()时,会先在自己的方法里找,没有的话,顺着xialuo.__proto__指向Student.prototype,若还是没有则继续向上找,指向People.prototype。
-------------------------------------------------------------------------------------------
sayHi不是xialuo自身的方法,是Student的方法,所以false
这时候就能理解为什么手写深拷贝的时候,要用到hasOwnProperty()
上理解上面图的条件下,重新理解instanceof
xialuo.instanceof.xxxx(student,people,object)
student,people,object的原型都在那摆着,xialuo的隐式原型向上寻找连接到了谁,xialuo与谁instanceof就为true。
-------------------------------------------------------------------------------------------
四.重要提示: