ES6用class构造函数与ES5构造函数

280 阅读1分钟

逆战班学习ES6与ES5构造函数语法与区别笔记 ES6构造函数

    class Fun {
        constructor(a, b) {
            this.a = a;
            this.b = b;
        }
        }
        sum () {
            console.log(this.a + this.b);
    }
       let num = new Fun(1, 2);
        num.sum();

ES5构造函数

    function Fun (a, b) {
            this.a = a;
            this.b = b;
    }
    Fun.prototype.sum = function() {
            console.log(this.a + this.b);
    }
       let num = new Fun(1, 2);
        num.sum();

两者区别

  • ES6语法定义的属于class类,并不是function函数,所以ES6中的class不能被JavaScript程序预解析,也就是说不能提前调用.

    ES5中的function可以提前调用,但是只是有属性没有方法。

  • ES6中constructor构造器中专门定义属性和属性的关键词,属于在构造器中定义实例化对象的属性和属性值,小括号里面的变量就是class类的参数。

    ES5中直接在function里面定义实例化对象的属性和属性值

  • ES6中构造函数的方法是在class类里面定义的,虽然没有特别声明,但是函数方法也是定义在prototype中
    ES5是在函数外通过prototype的方式来构造函数的