es6知识整理

2018-04-18  本文已影响0人  有一个程序媛

1.箭头函数需要注意的地方

        *当要求动态上下文的时候,就不能够使用箭头函数,也就是this的固定化。

        (1)在使用=>定义函数的时候,this的指向是定义时所在的对象,而不是使用时所在的对象;

        (2)不能够用作构造函数,这就是说,不能够使用new命令,否则就会抛出一个错误;

        (3)不能够使用arguments对象;

        (4)不能使用yield命令;

        class Animal {

          constructor() {

            this.type = "animal";

          }

          say(val) {

            setTimeout(function () {

              console.log(this); //window

              console.log(this.type + " says " + val);

            }, 1000)

          }

        }

        var animal = new Animal();

        animal.say("hi"); //undefined says hi

        class Animal {

          constructor() {

            this.type = "animal";

          }

          say(val) {

            setTimeout(() => {

              console.log(this); //Animal

              console.log(this.type + ' says ' + val);

            }, 1000)

          }

        }

        var animal = new Animal();

        animal.say("hi"); //animal says hi

2.promise

        var promise = new Promise((resolve, reject) => {

          if (操作成功) {

            resolve(value)

          } else {

            reject(error)

          }

        })

        promise.then(function (value) {

          // success

        }, function (value) {

          // failure

        })

        setTimeout(function () {

          console.log(1)

        }, 0);

        newPromise(function executor(resolve) {

          console.log(2);

          for(vari = 0; i < 10000; i++) {

            i == 9999 && resolve();

          }

          console.log(3);

        }).then(function () {

          console.log(4);

        });

        console.log(5);------------------------------2 3 5 4 1

上一篇 下一篇

猜你喜欢

热点阅读