ES6----class用法
阿新 • • 發佈:2017-09-17
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 一樣,在“類”的內部可以使用get
和set
關鍵字,對某個屬性設置存值函數和取值函數,攔截該屬性的存取行為。
基本內容就這些了 = =;
ES6----class用法