美文网首页
原型链概述

原型链概述

作者: 禺沫 | 来源:发表于2018-06-28 18:33 被阅读0次

JS原型链用来解决JS中继承关系,目前理解肤浅,实觉强制模仿面向对象,有许多不合理之处。

构造函数的继承:

function A(){}

A.prototype.name = "lilei";

function B() {}

让B继承A,写法:B.prototype = A.prototype;

tips:

A.prototype.name = "lilei"; 此种写法属性可被继承。

引发问题:1.B中更改prototype属性,A中跟着更改;

               2.如果A中有属性,如下:

                    function A(){

this.age = "20";

                     }

                   age则不会被继承,因为age方法在实例时候创建,原型中并没有。

如若想要让实例中属性被继承,则可写成

B.prototype = new A(); 

B.protptype.constructor = B;需要手动把B的构造函数指回来,但此种写法有多次创建A对象的弊端。

另外,有拷贝继承方式,取A中每个属性,赋值给B,无封装性可言。

非构造函数的继承:

除函数对象外,普通对象并没有prototype可用,没有条件创造条件使用prototype,new 一个function,其中的prototype设置为父类对象返回,此时再设置子类对象的属性。

普通对象有__proto__属性,但不能用__proto__方法代替prototype,因为__proto__用于指向创建它的构造函数的原型对象。

比如普通对象C,它的构造函数原型对象就为Object的prototype,则知,__proto__属性不能随意更改。

参考:

http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html

https://www.jianshu.com/p/dee9f8b14771

https://www.jianshu.com/p/652991a67186

相关文章

  • 原型链概述

    JS原型链用来解决JS中继承关系,目前理解肤浅,实觉强制模仿面向对象,有许多不合理之处。 构造函数的继承: fun...

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • 原型、原型链

    (什么是原型、原型链?有什么作用) JavaScirpt深入之从原型到原型链 图解 Javascript 原型链 ...

  • 2018-08-17原型与原型链

    1.概述prototype与__proto__ 之前就了解过一些原型与原型链的问题,觉得十分抽象,知道__pro...

  • 原型链&查找规则&作用域链

    原型链(隐式原型链) 属性的查找规则(原型链的查找规则) 作用域链

  • 关于原型原型链的理解

    什么是原型? 什么是原型链? 为什么需要原型,和原型链?

  • 原型链实现继承

    原型链 原型链示意图 使用原型链实现继承 这是怎么回事呢? 原型链在哪? 听我细细道来~ 首先 Teacher 实...

  • 继承

    原型链直接继承 原型链直接继承prototype 原型链继承_prototype属性 继承_构造函数绑定

  • js中的实现继承的几种方式

    大纲:原型链借用构造函数组合继承原型式继承寄生式继承寄生组合式继承 1、原型链: 什么是原型链? 原型链的基本思想...

  • 【原型和原型链】什么是原型和原型链

    【原型和原型链】什么是原型和原型链https://blog.csdn.net/xiaoermingn/articl...

网友评论

      本文标题:原型链概述

      本文链接:https://www.haomeiwen.com/subject/aujnyftx.html