zoukankan      html  css  js  c++  java
  • js面向对象-class类的基本使用es6语法规范(1-30)

    此博客只供自己学习记录使用

    1.继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的

    2.继承中,如果子类里面没有,就去查找父类有没有这个方法,如果有,就执行父类的这个方法(就近原则)

     3.super关键字(利用super调用父类的构造函数)

     子类在构造函数中使用super,必须放到this前面(必须先调用父类的构造方法,再使用子类构造方法)

     使用class类的两个注意点

    1.es6中类没有变量提升,所以必须先定义类,才能通过类实例化对象

    2.类里面的共有的属性和方法一定要加this使用

    3.类里面的this指向问题:constructor里面的this指向实例对象,方法里面的this指向这个方法的调用者

     

     构造函数和原型

    new在执行时会做四件事情

    1.在内存中创建一个新的空对象

    2.让this指向这个新的对象

    3.执行构造函数里面的代码,给这个新对象添加属性和方法

    4.返回这个新对象(所以构造函数里面不需要return)

     在构造函数中添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this上添加,两种方式添加的成员,分别成为静态成员和实例成员

    静态成员:在构造函数身上添加的成员叫做静态成员,只能通过构造函数本身来访问

    实例成员:在构造函数内部创建的对象成员称为实例成员,只能由实例化的对象来访问,实例成员就是构造函数内部通过this添加的成员

     

      构造函数的问题,存在浪费内存的问题,prototype就可以解决这个问题

     一般情况下,公共属性定义到构造函数里面,公共方法放到原型对象身上

     

     对象原型 __proto__

     

     constructor  构造函数

    此时遇到一个问题,如果要在构造函数的原型对象上添加十几种方法,此时要定义一个对象 Star.prototype = { 里面存放多个方法},但是遇到一个问题,就是里面没有了constructor,原因是重新给Star.prototype赋值了{},导致constructor不见,这个时候可以在对象里面添加constructor:Star重新指向构造函数

     构造函数 实例对象和原型对象 三角关系

     原型链讲解

     原型对象this指向问题

     利用原型对象prototype扩展内置对象方法

     js利用父构造函数继承属性组合继承(这个只是继承了属性)

     js利用原型对象继承方法 

     

     js类 class的本质是函数

     

    ES5中的新增方法

     filter()方法

     

     数组some

  • 相关阅读:
    内存:你跑慢点行不行?CPU:跑慢点你养我吗?内存:我不管!(内附超全思维导图)
    又能扯皮了!没内存了还能看片?
    写给大忙人看的进程和线程
    Python面试常用的高级用法,怎么动态创建类?
    LeetCode 74,直击BAT经典面试题
    LeetCode 73,为什么第一反应想到的解法很有可能是个坑?
    Golang基础教程——map使用篇
    手把手教你学numpy,从此数据处理不再慌【三】
    从辗转相除法到求逆元,数论算法初体验
    深入了解机器学习决策树模型——C4.5算法
  • 原文地址:https://www.cnblogs.com/gengzhen/p/14091787.html
Copyright © 2011-2022 走看看