码迷,mamicode.com
首页 > 其他好文 > 详细

es6声明一个类

时间:2020-03-21 17:57:40      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:表示   声明   cat   type   心得   cti   asc   targe   span   

js语言的传统方式是通过定义构造函数,生成心得对象。是一种基于原型的面向对象系统。在es6中增加了class类的概念,可以使用class关键字来声明一个类。之后用这个类来实例化对象。

构造函数示例

技术图片
const Demo = function(a,b){
  this.a = a;
  this.b = b;
  return this;
}

Demo.prototype = {
  constructor: Demo,
  print: function(){
    console.log(this.a+this.b);
  }
}

const demo = new Demo(‘jane‘,‘yun‘).print();
技术图片
技术图片
class Demo {
  constructor(a,b){
     this.a = a;
     this.b = b;
     return this;
  }
  print(){
    console.log(this.a+this.b);
  }
}

const demo = new Demo(‘hello‘,‘world‘).print();
技术图片

Demo中的constructor是构造方法,this关键字代表示例对象。

注:定义类的方法的时候不需要写function,另外 也不需要逗号。

2:静态方法

技术图片
class Point{
  constructor(a,b){
    this.a = a;
    this.b = b;
    return this;
  }
  static print(){
     console.log(‘say hi‘);
  }
}

const Point.print();
技术图片

3:继承

技术图片
class A{
  constructor(a){
    this.a = a;
    return this;
  }
  string(){
    return ‘hello,‘+ this.a
  }
}

class B extends A{
   constructor(a){
     super();
   }
   m(){
     super.sting();
   }
}

const b = new B(3);
技术图片
super
  1、super作为函数调用时,代表父类的构造函数。ES6 要求,子类的构造函数必须执行一次super函数。
  2、super作为对象时,在普通方法中,指向父类的原型对象;在静态方法中,指向父类
  super代表了父类A的构造函数,但是返回的是子类B的实例,即super内部的this指的是B,因此super()在这里相当于A.prototype.constructor.call(this)。
 
分类: javascript

es6声明一个类

标签:表示   声明   cat   type   心得   cti   asc   targe   span   

原文地址:https://www.cnblogs.com/xzybk/p/12540184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!