zoukankan      html  css  js  c++  java
  • js面向对象继承

     前言

       最近看到js面向对象这章节了,主要学习了原型和面向对象继承关系,为了梳理自己的知识逻辑,特此记录。

    js的面向对象

       先说说我目前了解的js创建对象方法

      1.写一个函数,然后通过new创建对象

      2.字面量的方式

      如果想要复用的话,可能会用到工厂方法 

     工厂方法每次都要创建对象 并返回   

     构造方法创建对象方法可以更简洁

     然而构造方法用实现实例间共享共同的方法,比较麻烦

      原型可以实现实例共享所有属性

      每个函数都有指向原型对象的指针,如果将一个函数的原型属性赋值给另外函数的实例,函数的原型将指向另外一个函数的原型对象,这样就形成原形链。

      原型链可以是来模拟面向对象中的继承特性

      在用原型的过程中,如果实例间的引用类型的值是指向同一个引用,所有实例间引用类型的值可能相互影响。

      所以引入构成函数来生成一个副本对象 保证对象的独立性   他们的组合史称组合继承方式

      但是这种模式,需要调用父类构造函数2次,性能可能不是最佳   

      这个时候寄生继承方式出现了 他实现的方式是以object()方法创建对象引用的副本,然后再给副本的构造实例赋值以子类的对象,最后将子类的对象的原型赋值以副本对象,这样就避免调用了父类构造函数,只在子类构造函数里通过父类.call(this,args)调用父类

      最后寄生组合继承方式成了创建对象的比较完美的解决方案

  • 相关阅读:
    web服务器
    javascript对象属性为空的判断
    字符编码:ASCII,Unicode和UTF-8
    javascript 中英文字符长度和截断处理
    函数节流与去抖
    互联网协议
    解读 v8 排序源码
    乱序
    递归
    函数记忆
  • 原文地址:https://www.cnblogs.com/JaggerMan/p/4554500.html
Copyright © 2011-2022 走看看