• es6中的类


    关于类/class:
    类是对象模型,ES6 的 class 可以看作只是一个语法糖,它的绝大 部分功能,ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像 面向对象编程的语法而已。
    特点:
    面向对象,具备属性与方法
       人: Person
      属性: name
      展示名字: showName Person.prototype.showName
    相当于ES5中的构造函数
    类并没有预解析功能,必须定义完成后再调用
    class不存在变量提升,所以需要先定义再使用。因为ES6不会把类的声明提升到代码头部,但是ES5就不一样,ES5存在变量提升,可以先使用,然后再定义。
     
    静态方法
    类的所有方法都定义在类的prototype属性上面,所有类中定义的方法都会被实例继承,如果在类方法前面加上static关键字就不会被实例继承了。
    静态方法是直接通过类名来调用。
    注意,如果静态方法包含this关键字,这个this指的是类,而不是实例
    super 这个关键字,既可以当做函数使用,也可以当做对象使用。这两种情况下,它的用法完全不用。
    第一种情况,super作为函数调用时,代表父类的构造函数。ES6 要求,子类的构造函数必须执行一次super函数。
    第二种情况,super作为对象时,在普通方法中,指向父类的原型对象;在静态方法中,指向父类。
     
    .类的prototype属性和_proto_属性
    大多数浏览器的ES5实现中,每一个对象都有一个_prop_属性,指向相应的构造函数的prototype属性。
    Class作为构造函数的语法糖,同时有prototype属性和_prop_属性,因此同时存在两条继承链。
    子类的_prop_属性,表示构造函数的继承,总是指向父类。
    子类prototype属性的_prop_属性,表示方法的继承,总是指向父类的prototype属性。
     
     
    Object.propotypeOf方法可以用来从子类上获取父类。
    Object.propotypeOf(colorPoint) === Point
    //true
    因此,使用这个方法判断,一个类是否继承了另一个类,
     
    hasOwnProperty()函数用于判断属性是否是实例属性。其结果是一个布尔值, true说明是实例属性,false说明不是实例属性。
    in操作符会在通过对象能够访问给定属性时返回true,无论该属性存在于实例中还是原型中。
    关于类的其它用法
    1.在“类”的内部可以使用 get 和 set 关键字,对某个属性设置存值函数和取值函数, 拦截该属性的存取行为。
    2.静态方法: 所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上 static 关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态 方法”。
    3.函数表达式:与函数一样,类也可以使用表达式的形式定义。
    4.类的继承
  • 相关阅读:
    hibernate的dialect大全
    jdbc.properties 链接各类数据库的基本配置以及URL写法
    Springboot中redis的学习练习
    博客开通了
    Java String类的hashCode()函数
    Java String类中CaseInsensitiveComparator.compare()方法的实现
    git pull远程所有分支
    Python的权限修饰符
    Tmux快捷键
    __future__模块
  • 原文地址:https://www.cnblogs.com/bjyx/p/11987645.html
Copyright © 2020-2023  润新知