ES6构造函数class 和 ES5构造函数语法

892 阅读1分钟

ES5和ES6的语法功能作用完全相同,只是语法不同。

ES6的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。

1. ES5语法

function Fun1(name,age){
    this.name = name;
    this.age = age;
}
Fun1.prototype.f1 = function(){
    console.log(this.name , this.age);
}

2. ES6语法 class

constructor构造器,() 中定义的是class类的参数,在构造器中定义实例化对象的属性和属性值;

构造函数的方法,如f() 也是定义在prototype中的;

class Fun2{
    constructor(name,age){
        this.name = name;
        this.age = age;
    }

    f2(){
        console.log(this.name , this.age);
    }
}

ES5和ES6语法的区别

ES6语法定义的class类,不会被JavaScript预解析,不能提前调用;

ES5语法的function可以提前调用,但是只有属性可以提前调用, prototype里的方法不能提前调用,因为定义prototype是在function函数外定义的,如果提前调用函数, prototype里的方法还没执行。

逆战班