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 一样,在“类”的内部可以使用get
和set
关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。
基本内容就这些了 = =;