星空网 > 软件开发 > Java

Es6(class)

一、基础用法

 //1传统面向对象 构造函数  function Person(name,age){    this.name = name;    this.age = age;  }  Person.prototype.sayName = function(){    console.log(this.name); //王大厨  }  var person = new Person('王大厨','26');  person.sayName();

2.

//2.es6 中定义的类  class Person{    constructor(name,age){      this.name = name;      this.age = age;    }    sayName(){      console.log(this.name) //王二厨    }  }  var person = new Person('王二厨',22);  person.sayName();  //在ES6的“类”上面继续存在。事实上,类的所有方法都定义在类的prototype属性上面。

3.枚举

类的内部所有定义的方法,都是不可枚举的(non-enumerable)。跟es5中的差距。

4.constructor 方法

constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个空的constructor方**被默认添加。

默认返回this,及实列对象。返回可以指定返回另外的对象。

类的构造函数,不使用new是没法调用的,会报错。这是它跟普通构造函数的一个主要区别,后者不用new也可以执行。

5.类的实列对象

生成类的实例对象的写法,与ES5完全一样,也是使用new命令。如果忘记加上new,像函数那样调用Class,将会报错。

 var person = new Person('王二厨',22); //正确  var p1 = Person(); //报错

与ES5一样,实例的属性除非显式定义在其本身(即定义在this对象上),否则都是定义在原型上(即定义在class上)。

6.不存在变量的提升

//Class不存在变量提升(hoist),这一点与ES5完全不同。  new Person(); //报错  class Person{}

7.立即执行的Class 类

let p = new class{    constructor(name){      this.name = name;    }    sayName(){      console.log(this.name);    }  }('王三厨');

二、继承

Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多。(跟php中一样啊




原标题:Es6(class)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流