zoukankan      html  css  js  c++  java
  • ES6学习

      一直在断断续续的学习ES6,但是js确实发展的比较快,导致自己对于最近出来的一些新语法,ES7,8,9,10是有些糊涂的,内心是想说,连es6都没 学全呢,不过呢,用的多的就知道,什么let,const啦,解构赋值啦,箭头函数啦,....

      但是随着Vue3.0的脚步越来越近,proxy以及相关的东西越来越多,但是说实话,这些只是知道,但是工作中肯定是没有用过的,

      今天又翻开了es6的文章,希望在看看class部分,

      之前对class总是模糊的,用的确实也是不多,对什么静态方法,静态属性,之类的概念有点懵,那么今天就趁此机会来捋捋

      把整个部分看下来呢,发现也还好,

      1,静态方法=》就是定义在类本身上面的方法,而不是实例方法,这个需要在方法前面加上关键字static

      2,静态属性 既然有方法,一般想到的,应该会有属性吧,但是现在es6规定,class内部只能有静态方法,而不能有静态属性,静态属性一般写在外面

      3,实例属性  一般实例属性是写在constructor方法里面的,下面的name和age就都是实例属性,现在实例可以不用写在constructor方法里面,可以写在类的最顶部

      4,私有属性和方法 ,私有方法和私有属性,是只能在类的内部访问的方法和属性,外部不能访问。这是常见需求,有利于代码的封装,但 ES6 不提供,只能通过变通方法模拟实现。 

      

     clsss Foo(){
      count:0 //实例属性也可以这么写,都不用带this
      constructor(name,age){
        this.name=name,
        this.age=age
      }
      
    static getName(){ return '我是静态方法' } }
    Foo.name = '我是静态属性'

    第二部分,就是继承了,可以通过extends关键字实现继承

    //这个是阮一峰老师书里面的例子
    class ColorPoint extends Point {
      constructor(x, y, color) {
        super(x, y); // 调用父类的constructor(x, y)
        this.color = color;
      }
    
      toString() {
        return this.color + ' ' + super.toString(); // 调用父类的toString()
      }
    }

    摘抄一段比较重要的,关于super的

    上面代码中,constructor方法和toString方法之中,都出现了super关键字,它在这里表示父类的构造函数,用来新建父类的this对象。

    子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,

    得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。如果不调用super方法,子类就得不到this对象。

    其实搞下来呢,内容也还好,是吧,没那么难,起码比通过原型去实现继承还是简单一点吧

  • 相关阅读:
    集成服务监控器green.monitor发布
    细说Angular ngclass
    利用Travis CI 让你的github项目持续构建(Node.js为例)
    CSV和集合对象基于Annotation操作封装
    【HeadFirst 设计模式学习笔记】4 工厂模式
    【HeadFirst 设计模式学习笔记】5 单例模式
    【面向对象设计基础】常量数据管理器
    【面向对象设计基础】存取方法+Private类成员和方法
    【HeadFirst 设计模式学习笔记】3 装饰模式
    【HeadFirst 设计模式学习笔记】2 观察者模式
  • 原文地址:https://www.cnblogs.com/ysla/p/13258547.html
Copyright © 2011-2022 走看看