ES6

2019-05-09  本文已影响0人  浮生若梦_5094
let,const
箭头函数
模板字符串

Promise

                 new Promise((resolve,reject) => {
    $.ajax({
        url:'xxx',
        type:post,
        success(res){
            resolve(res);
        },
        error(err){
            reject(err);
        }
    });
}).then((res) => { //  resolve
    console.log('success',res);
},(err) => { //  reject
    console.log('error',err);
});
var  promiseFn1 = new Promise((resolve,reject) => {
    $.ajax({
        url:'xxx',
        type:post,
        success(res){
            resolve(res);
        },
        error(err){
            reject(err);
        }
    });
});
var  promiseFn2 = new Promise((resolve,reject) => {
    $.ajax({
        url:'xxx',
        type:post,
        success(res){
            resolve(res);
        },
        error(err){
            reject(err);
        }
    });
});
promiseFn1.then(() => {
 console.log('promiseFn1 success')
 return promiseFn2;
}).then(() => {
 console.log('promiseFn2 success')
});
面向对象-类
// class constructor 类和构造函数的用法
class Animal{
    constructor(){
        this.name = 'Animal';
    }
    getName(){
        return this.name
    }
}
let animal = new Animal();
console.log(animal.getName());
//  动态设置类里面的属性和方法
class Animal1{
    constructor(name){
        this.name = name;
    }
    getName(){
        return this.name
    }
}
let animal1 = new Animal1('animal test');
console.log(animal1.getName());
面向对象-类的继承
// 类的继承
class Animal{
    constructor(){
        this.name = 'Animal';
    }
    getName(){
        return this.name
    }
}
let animal = new Animal();
console.log(animal.getName());


class Cat extends Animal{  // 如果用了extends关键字,子类里是没有this指针,只能调用super
    constructor(){
        super();  //  继承父类的方法,其实就是调用父类的constructor构造函数,共享一个指针
        this.name = 'cat';  
    }
}

let animal = new Animal();
let cat = new Cat();
console.log(animal.getName()); // Animal
console.log(cat.getName()); // cat
面向对象-对象
/* 对象的用法  */

//老写法
var name = 'Rosen',
    age = 18;
var obj = {
    name : name,
    age : age,
    getName: function() {
        return this.name;
    },
    getAge: function() {
        return this.age;
    }
} 
//ES6
let name = 'Rosen',
    age = 18;
let obj = {
    name,//  变量名 可以直接用作对象的属性名称
    age,
    getName() {//  对象里面的方法也可以简写
        return this.name;
    },
    //  表达式作为属性名或者方法名
    ['get' + 'Age'](){
        return this.age;
    }
} 

/* Object对象的扩展  */
// keys() 会返回对象的所有属性,返回为数组,
Object.keys(obj);
//  合并对象,对重复的属性进行覆盖,后覆盖前
Object.assign();

ES6模块化

//  type="text/javascript"  必须为module  才可模块化引入
<script type="module" src="xxx"></script>
上一篇 下一篇

猜你喜欢

热点阅读