彻底搞懂JavaScript 之 ES6新特性class(类)

文章对比了ES5中的构造函数和ES6中的Class语法,说明了Class是如何从构造函数进化而来的。在ES5中,通过function定义构造函数,而在ES6的Class中,构造函数被重构成constructor方法,属性和方法的定义更加简洁。Class的语法主要是对构造函数和方法定义的语法糖改进。
摘要由CSDN通过智能技术生成

其实很容易理解这个class,它就是ES5的构造函数进化而来的。

ES5构造函数

// ES5
function Person(name, age) {
  this.name = name
  this.age = age
  this.sing = function(musicName) {
    consloe.log("musicName", musicName);
  }
}

const person = new Person('刘德华', 22)
console.log(person.name)  // 刘德华
console.log(person.age)  // 22
person.sing('开心的马骝') // 开心的马骝

ES6---class(类)

// ES6
class Stack {
      constructor(name, age) {
        this.name = name;
        this.age = age;
        this.arr = [];
      }
      in(value) {
        this.arr.push(value);
      }
      top() {
        console.log(this.arr[0]);
      }
      out() {
        console.log(this.arr.shift());
      }
      size() {
        console.log(this.arr.length);
      }
}


const obj = new Stack();
    obj.in('x') 
    obj.in('y')
    obj.in('z')
    obj.top() // Z
    obj.size() // 3
    obj.out() // Z
    obj.top() // y
    obj.size() // 2

对比之后你不难发现,其实就是把ES5的Person(name, age)抽到ES6的constructor(name, age){}函数中。构造函数中除了属性为函数之外的属性都放到constructor函数中去定义。悟:ES6class中constructor()方法就是new一个实例需要传的参数,也可以传函数作为参数。

构造函数

 class类

      然后构造函数中定义的方法,直接以funcName(){}的方式写到class中。改良了写法而已

构造函数

class类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值