ES6----class用法

http://es6.ruanyifeng.com/#docs/class         阮一峰老师的ES6入门

一:知识点:

1.基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到。

2.ES6 的类,完全可以看作构造函数的另一种写法。

3,.类的方法都定义在prototype对象上面,所以类的新方法可以添加在prototype对象上面。

  向类中添加方法

Object.assign(Point.prototype, {
  toString(){},
  toValue(){}
});

4.类中的方法不可枚举。

二:class经典实例

class Person {
constructor(name,age){
    this.name=name;
    this.age=age;
}
sayname(){
    console.log(this.name);
}
}

var person1=new Person("li",23);
person1.sayname();
console.log(person1.hasOwnProperty('name')); //true
console.log(person1.hasOwnProperty('sayname'));  // false
console.log(person1.__proto__.hasOwnProperty('sayname'));// true

var person2=new Person("han",27);
console.log(person1.__proto__ === person2.__proto__ );//true

类的所有实例共享一个原型对象。

class不存在变量提升。

三:class---private

1.私有方法

ES6不支持,变通实现

方法一:在函数前加_,表示该方法私有

方法二:将私有方法移出类中。

方法三:使用symbol----利用Symbol值的唯一性

2.私有属性

ES6不支持,变通实现

方法:属性前加#

四:补充知识点

this指向当前对象,一般在构造函数中使用。

与 ES5 一样,在“类”的内部可以使用getset关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。

基本内容就这些了 = =;

 

posted @ 2017-09-17 21:11  想旅行的手电筒  阅读(237)  评论(1编辑  收藏  举报