1、Class的基本语法es6
一、简介编程
基本上,ES6的class能够看做只是一个 语法糖,它的绝大部分功能,ES5均可以作到,新的class写法只是让 对象原型 的写法更加清晰、更像面向对象编程的语法而已。
函数
若是要生成一个对象实例,须要先定义一个构造函数,而后经过new操做符来完成。构造函数实例:this
//函数名和实例化构造名相同而且大写(有助于区分构造函数和普通函数)
function Person(name,age){ this.name = name; this.age = age; } Person.prototype.read = function(){ return "个人名字叫" + "this.name" + "今年" + this.age + "岁了"; } var obj = new Person("一诺",18);//经过构造函数建立对象,使用new
console.log(obj.read()) //结果:个人名字叫一诺今年18岁了。
上面代码的代码用ES6改写:spa
class Person{ //定义一个名为Person的类
constructor(name,age){ //constructor是一个构造方法,用来接收参数
this.name = name; this.age = age; } read(){ return "个人名字叫" + this.name + "今年" + this.age + "岁了" } } var obj = new Person ("一诺",18) console.log(obj.read()) //个人名字叫一诺今年18岁了
constructor方法是类的构造函数的默认方法,经过new 命令生成对象实例时,自动调用该方法。prototype
class Box{ constructor(){ console.log("这个礼拜天气不错"); //当实例化对象时该行代码会执行 } } var obj = new Box();
class Desk{ constructor(){ this.ss = "大千世界,无奇不有"; } } class Box{ constructor(){ return new Desk();//没有用this,直接返回一个全新的对象 } } var obj = new Box(); console.log(obj.ss) //大千世界,无奇不有
class不错在变量提高,因此须要先定义再使用。由于ES6不会把类的声明提高到代码的头部,可是ES5就不同,ES5存在变量提高,能够先使用,而后再定义3d