1. 程式人生 > >ES6----class用法

ES6----class用法

property _proto_ prototype 變量 內部 用法 指向 prot .proto

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關鍵字,對某個屬性設置存值函數和取值函數,攔截該屬性的存取行為。

基本內容就這些了 = =;

ES6----class用法