Es6 的类(class)
首先根据es5的类(原型对象)的基本点做参照。
| 序号 | 基本点 | es5 | >es6 |
|---|---|---|---|
| 1 | 实例属性(方法) | √ | √ |
| 2 | 原型属性(方法) 或 公共属性(方法) | √ | √ |
| 3 | es5的私有变量 或 私有属性 | √ | |
| 4 | 静态方法和静态属性 | √ | √ |
| 5 | set 和 get | √ | √ |
| 6 | protected | ||
| 6 | 继承 | √ | √ |
ps: 私有属性和私有变量并非相等,私有属性可在类与类之间直接传递,Es6现在没有或再提议。
// es5的私有变量间接通过实例方法传递和修改
function Person() {
var privateVariable = '私有变量';
this.getPrivateVarivable = function () {
return privateVariable;
}
this.setPrivateVarivable = function (val) {
privateVariable = val;
}
}
概过:Es6 没有protected,私有属性private没有,只有5点:
- 实例属性
- 公共
- 静态
- set 和 get
- 继承
class Parent {
constructor(name='baba'){
// 实例属性
this.name=name;
// 实例方法
this.fn = () => {
// todo
}
// 初始化执行某方法
this.someMethod();
}
// 公共方法
someMethod () {
// todo
}
// 静态方法
static function () {
// todo
}
get longName () {
return `lc_${this.name}`;
}
set longName (val) {
this.name = val;
}
}
// 公共属性
Parent.prototype.type = 'super';
// 静态属性
Parent.name = 'fn parent';
const parent = new Parent();
parent.longName; // lc_baba
parent.longName = '666';
parent.longName; // 'lc_666'
class Child extends Parent {
constructor(...args) {
// super()一定要有,并在construtor内第一行的位置
super(...args);
// 执行父类某方法时,不同事执行子类继承过来的方法
// super.someMethod();
this.someMethod();
}
some () {
// todo
}
}
Es6 的类(class)的更多相关文章
- React和ES6(二)ES6的类和ES7的property initializer
React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的property initializer React与ES6(三)ES6类和方法绑定 React ...
- [js高手之路] es6系列教程 - new.target属性与es5改造es6的类语法
es5的构造函数前面如果不用new调用,this指向window,对象的属性就得不到值了,所以以前我们都要在构造函数中通过判断this是否使用了new关键字来确保普通的函数调用方式都能让对象复制到属性 ...
- ES6入门——类的概念
1.Class的基本用法 概述 JavaScript语言的传统方式是通过构造函数,定义并生成新对象.这种写法和传统的面向对象语言差异很大,下面是一个例子: function Point(x, y) { ...
- JavaScript es6 class类的理解。
本着互联网的分享精神,在本篇文章我将会把我对JavaScript es6 class类的理解分享给大家. JavaScript 类主要是 JavaScript 现有的基于原型的继承的语法糖. 类语法 ...
- ES6 | class类的基本语法总结
类和模块的内部,默认就是严格模式,所以不需要使用use strict指定运行模式.只要你的代码写在类或模块之中,就只有严格模式可用. 考虑到未来所有的代码,其实都是运行在模块之中,所以 ES6 实际上 ...
- es6 --- class 类的继承使用
传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人 ...
- ES6 class类中定义私有变量
ES6 class类中定义私有变量 class类的不足 看起来, es6 中 class 的出现拉近了 JS 和传统 OOP 语言的距离.但是,它仅仅是一个语法糖罢了,不能实现传统 OOP 语言一样的 ...
- es6 的类 class
1.ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板.通过class关键字,可以定义类. 2. //定义类 class Point { constructor(x, y ...
- ES6——class类继承(读书笔记)
前言 我一定是一个傻子,昨天这篇文章其实我已经写好了一半了,但是我没有保存 这是学习ES6的过程,我没有系统的看完阮大大的书.零零散散的,很多功能知道,但是没有实际的用过 看了几遍,总是看前面几章,所 ...
- ES6 class 类的理解(一)
优点 ES6 的类提供了几点明显的好处: 兼容当前大量的代码. 相对于构造器和构造器继承,类使初学者更容易入门. 子类化在语言层面支持. 可以子类化内置的构造器. 不再需要继承库:框架之间的代码变得更 ...
随机推荐
- mongo 删除内嵌数组元素
文档格式如下: { "_id" : ObjectId("56e2a92ccc6dd2271953e502"), "links": [ { & ...
- callback 回调函数
把函数a当做一个参数传入函数b <script> Array.prototype.mysort = function(callback){ let s = this; //准备向回调函数里 ...
- Linux软件安装中RPM与YUM 区别和联系
.tc-nav-row{ height:38px; margin: 8px 15px; } .tc-nav-tab{ text-align: center; color:#333333; line-h ...
- Hbase学习笔记——基本CRUD操作
进入Hbase的安装目录,启动Hbase bin/start-hbase.sh 打开shell命令行模式 bin/hbase shell 关闭Hbase bin/stop-hbase.sh 一个cel ...
- 面包屑 CSS
首先祝大家,在新年里,好的.善良的都都马上有. 关于css实现面包屑已经是一个典型例子了.不过今天还是与大家分享一下实现的原理.原理:每一段元素固定宽度并向左浮动,头尾突出部分相对父元素用相对定位固定 ...
- react给一个div行内加背景图片并实现cover覆盖模式居中显示
具体background简写可以参考这篇文章. 这里注意,如果简写里要写background-size,则这里必须写 / ,否则整个背景图片样式没有解析出来. 它和font以及border-radi ...
- [Python] 00 - Books
A.I. & Optimization Advanced Machine Learning, Data Mining, and Online Advertising Services Ref: ...
- WampServer自己DIY添加apache、php、mysql版本
下载自己需要的apache版本. 下载地址: http://httpd.apache.org/download.cgi http://www.apachelounge.com/download/ 解压 ...
- 条件变脸pthread_cond_signal丢失问题
直接上代码: static bsem_t bsem; void* t1(void *arg) { /*printf("enter task 1\n");*/ /*while(1)* ...
- android 手机 多分辨率适配
近来在做android屏幕适配这方面的工作, 今天总算有点眉目. 小记一下 基础知识就不科普了, 网上一大堆. 作为一个刚接触这方面人, 最先进入我脑子的, 是从小到大的各种屏, 小到手表, 大到街 ...