• es6 面向对象


     1      class Student {
     2         constructor(name,age) {
     3               this.name = name;
     4               this.age = age;
     5         }
     6         init(){
     7               console.log(this.name,this.age)
     8         }
     9     }
    10     let p = new Student('张三','14');
    11     p.init();

    上面代码是实例化方法

    下面代码是静态方法(静态方法不能通过实例化方法调用,会报TypeError: p.init is not a function)

     1     class Student {
     2 //        constructor(name,age) {
     3 //              this.name = name;
     4 //              this.age = age;
     5 //        }
     6         static init(_name,_age){
     7               console.log(_name,_age)
     8         }
     9     }
    10     Student.init('张三','14');

     1,静态方法通过 static 关键字声明,基于类名调用。
     2,为什么使用静态方法:阻止方法被实例继承,类的内部相当于实例的原型,所有在类中直接定义的方法相当于在原型上定义方法,都会被类的实例继承,但是使用static静态方法定义的不会被实  例继承
    3,静态方法中this指向:this指向类而不是类的实例,就像object.d = d
    缺点:老写法的静态属性定义在类的外部。整个类生成以后,再生成静态属性。容易忽略
    除此之外,不需要访问类属性的方法都可以写成静态的,这类方法一般都是 Helper 方法,即对输入进行处理再得到一个输出,与对象的成员无关。这类方法也可以直接写为公共函数(非方法函数)。

  • 相关阅读:
    插入排序(JS代码)
    选择排序(JS代码)
    快速排序(JS代码)
    冒泡排序(js代码)
    《CSS揭秘》--推荐指数⭐⭐⭐⭐⭐
    CSS中position的定位
    逆转录转座子初窥
    django开发傻瓜教程-1-安装和HelloWorld
    爬虫教程-1
    算法_NP_证明
  • 原文地址:https://www.cnblogs.com/ruanwei/p/10608729.html
Copyright © 2020-2023  润新知