ES6 经常使用详解(二)

1、面向对象(基本)
①class关键字、组织器和类分开了
②class内里直接加要领

传统的面向对象老版本是如许的:

function User(name,pass){
    this.name = name;
    this.pass = pass
}

User.prototype.showName = function(){
    alert(this.name)
}
User.prototype.showPass = function(){
    alert(this.pass)
}

var u1=new User('blue','123456')
u1.showName();
u1.showPass();

题目:
1.在本来的JavaScript内里,是否是类和组织函数是一个东西。User是否是组织函数?是,User是组织函数,User是否是类,也是,也是类,这就很新鲜。
2.类散开了。

新版本写法:

class User{
    //组织器
    constructor(name){
        this.name=name;
        this.pass=pass;
    }
    
    showName(){
        alert(this.name);
    }
    showPass(){
        alert(this.pass);
    }
}

继续:

老版本继续:

function VipUser(name,pass,leavel){
    User.call(this,name,pass);
    this.level=level;
}
VipUser.prototype=new User();
VipUser.prototype.constructor=VipUser;

VipUser.prototype.showLeavel=function(){
    alert(this.level)
}
var v1=new VipUser('tom','123456',3)
v1.showName()
v1.showPass();
v1.showLeavel();

新版本继续:
class VipUser extends User{

constructor(name,pass,level){
    // 超类/父类
    super(name,pass);
    this.level=level;
}

showLevel(){
    alert(this.level)
}

}

2、Promise

处理回调地狱,用同步一样的体式格局,来誊写异步代码。
Promise.all([$.ajax(),$.ajax()]).then(result=>{
    //对了
},err=>{
    //错了
})

Promise.race 竞速
假定:
以下的要求代表同时发出多个要求,哪一个先取得数据就用哪一个。

Promise.race([
    $.ajax({url:'http://a2.taobao.com/data/users'}),
    $.ajax({url:'http://a5.taobao.com/data/users'}),
    $.ajax({url:'http://a3.taobao.com/data/users'}),
])
    原文作者:soso辉
    原文地址: https://segmentfault.com/a/1190000018411252
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞