当前位置: 首页 > Web前端 > JavaScript

原型和原型链_0

时间:2023-03-27 01:38:17 JavaScript

原型分为显式原型(prototype)和隐式原型(__proto__)。对应的原型关系如下:1.每个类都有一个显示原型prototype。2.每个对象实例都有一个隐式原型__proto__指向对应类的原型。3、对象实例的__proto__指向对应类的原型。基于原型的执行规则获取属性xialuo.name或执行方法xialuo。sayHi()时:1.先找它自己的属性和方法。2.如果找不到,会自动在__proto__中查找。如果仍然没有找到顶层对象Object,则Object.prototype.__proto__下的值会返回null。什么是原型链?答:每个实例对象(object)都有一个私有属性(__proto__)指向其构造函数的原型对象(prototype)。原型对象也有自己的原型对象(__proto__),层层叠叠直到一个对象的原型对象为空。由此产生的链结构称为原型链。示意图如下:对应代码如下:classPerson{constructor(name,number){this.name=name;this.number=数字;}eat(){}};classStudentextendsPerson{constructor(name,number){super(name,number)}sayHi(){}}letxialuo=newStudent();//关系如下:xialuo.__proto__=Student.prototype;console.log(xiaoluo.hasOwnProperty("name"))//trueconsole.log(xiaoluo.hasOwnProperty("eat"))//falsexialuo.instanceofStudent//truexialuo.instanceofPerson//truexialuo.instanceof对象//真