怎样做网站导购教程,太原推广团队,新人做外贸哪个平台好做,网站建设收费标准平台7.1原型 【例如】 另外- this指向#xff1a; 构造函数和原型对象中的this都指向实例化的对象
7.2 constructor属性
每个原型对象里面都有个constructor属性( constructor构造函数) 作用#xff1a;该属性指向该原型对象的构造函数 使用场景: 如果有多个对象的方法#…7.1原型 【例如】 另外- this指向 构造函数和原型对象中的this都指向实例化的对象
7.2 constructor属性
每个原型对象里面都有个constructor属性( constructor构造函数) 作用该属性指向该原型对象的构造函数 使用场景: 如果有多个对象的方法我们可以给原型对象采取对象形式赋值. 但是这样就会覆盖构造函数原型对象原来的内容这样修改后的原型对象constructor就不再指向当前构造函数了 此时我们可以在修改后的原型对象中添加一个constructor指向原来的构造函数。 【例如】
scriptfunction Star() {}Star.prototype {// 手动利用constructor 指回 Star构造函数constructor: Star,sing: function () {console.log(唱歌);},dance: function () {console.log(跳舞);}}console.log(Star.prototype) // 指向 Star
/script7.3对象原型
对象都会有一个属性 __proto__ 指向构造函数的prototype原型对象之所以我们对象可以使用构造函数prototype原型对象的属性和方法就是因为对象有 __proto__ 原型的存在。
注意: ➢ __proto__ 是JS非标准属性 ➢ [[prototypel] 和 __proto__ 意义相同 ➢ 用来表明当前实例对象指向哪个原型对象prototype ➢ __proto__ 对象原型里面也有一个constructor属性指向创建该实例对象的构造函数 ➢只要是对象就有原型 __proto__
7.4原型继承
继承是面向对象编程的另一个特征通过继承进一步提升代码封装的程度JS中大多是借助原型对象实现继承的特性。
1.封装-抽取公共部分 把男人和女人公共的部分抽取出来放到人类里面 2.问题和原因 男人和女人都同时使用了同一个对象根据引用类型的特点他们指向同一个对象修改一个就都会受影响 3.解决: 需求男人和女人不要使用同一个对象但是不同对象里面包含相同的属性和方法 因为new每次都会创建一个新的对象所以用构造函数来处理
7.5原型链
基于原型对象的继承使得不同构造函数的原型对象关联在一起并且这种关联的关系是一种链状的结构我们将原型对象的链状结构关系称为原型链 记住两句话 1.只要是对象就有原型 __proto__指向原型对象 2.只要是原型对象就有constructor指向创建该原型对象的构造函数