ES6

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/amyliyanice/article/details/79959297

Es5、Es6运行需要搭建开发环境

常量

ES5 
Object.defineproperty(window,'PI',{
    value:3.1415,
    writable:false
});

Es6
const PI = 3.1415;

闭包、作用域、变量提升

Es5立即执行函数
;(function(){   
})

Es6 
{
        ...作用域
}

模板字符串

var name="zhangsan";
console.log(`名字是:${name}`);

属性和方法的简写

var name = "zhangsan";
var app = {
    name,//属性的简写
    run(){
        console.log(`${this.name}在跑步`);
    }
}

箭头函数 (this指向上下文)

setTimeout(()=>{
},1000)

promise

处理异步回调
resolve //成功的回调函数
reject //失败的回调函数

var p = new Promise(function(resolve,reject){
    setTimeout(function(){
        var name = "zhangsan";
        resolve(name);
    })
})

p.then(function(data){
    console.log(data);
})

es6的类继承

class Person{
    constructor(name,age){
        this._name = name;
        this._age = age;
    }
    setName(name){
        this._name = name;
    }
    getName(){
        return this._name;
    }
}

class Web extends Person{
    constructor(name,age,sex){
        super(name,age);
        this._sex = sex;
    }
    getInfo(){
        return "name:"+this._name + ",age="+this._age+",sex="+this._sex;
    }
}

var web = new Web("张三",20,"男");
web.getInfo();
web.setName("lilian");
web.getInfo();

es6 静态方法

class Person{
    constructor(name,age){
        this._name = name;
        this._age = age;
    }
    setName(name){
        this._name = name;
    }
    getName(){
        return this._name;
    }
    static work(){
        console.log("这是一个示例");
    }
}
//或者Person.instance="这也是一个实例";

//调用
Person.work();
console.log(Person.instance);

es6静态方法单例模式

mongodb数据库只连接一次

class Db{
    constructor(){
        console.log("constructor in");
        this.connect();     
    }
    connect(){
        cnsole.log("connect mongodb");
    }
    find(){
        console.log("find data");
    }
}
var mydb1 = new Db();
var mydb2 = new Db();
mydb1.find();
mydb2.find();
//可以看到连接执行了两次

//使用单利模式进行改造
class Db{
    static getInstance(){
        if(!Db.instance){
            Db.instance = new Db();
        }
        return Db.instance;
    }
    constructor(){
        console.log("constructor in");
        this.connect();     
    }
    connect(){
        cnsole.log("connect mongodb");
    }
    find(){
        console.log("find data");
    }
}

var mydb1 = new Db();
var mydb2 = new Db();
var mydb3 = new Db();
var mydb4 = new Db();
mydb3.find();
mydb4.find();
//可以看到我们的连接connect只执行了一次
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页