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 的类提供了几点明显的好处: 兼容当前大量的代码. 相对于构造器和构造器继承,类使初学者更容易入门. 子类化在语言层面支持. 可以子类化内置的构造器. 不再需要继承库:框架之间的代码变得更 ...
随机推荐
- IP分片与重组详解
大家对IP数据包头,应该不陌生吧 分片便是与图中圈出来的两个地址有关,本文也是将主要围绕他们展开. 那我们先来了解他们的概念. 标志一个三比特字段遵循与用于控制或识别片段.他们是(按顺序,从高分以低位 ...
- Android 使用ColorMatrix改变图片颜色
原文链接:http://blog.csdn.net/janice0529/article/details/49207939 ColorMatrix的颜色矩阵介绍 颜色矩阵M是一个5*4的矩阵,在And ...
- 可能是最早的学习Android N新特性的文章
可能是最早的学习Android N新特性的文章 Google在今天放出了Android N开发者预览版.Android N支持Nexus6及以上的设备.5太子Nexus5不再得到更新. Android ...
- 解决VisualStudio无法调试的问题
方法1 方法2
- Flv的结构分析
Flv是网络上流行的非常广的一种媒体格式,很多大型媒体网站都在使用这种格式承载音视频信息,比如优酷等网站. Flv文件格式相对而言还是比较简单的,主要是由两部分组成 FLV header FLV bo ...
- Apache Maven 打包可执行jar
在本文的 参考资料 部分,您将发现大量介绍 Maven 的入门教程.本文的 5 个技巧目的是帮助您解决即将出现的一些问题:使用 Maven 管理您的应用程序的生命周期时,将会出现的编程场景. 1. 可 ...
- 安卓手机优化 ROOT自启动管理 + 电量管理
一.KingRoot + 净化大师 KingRoot 主要完成ROOT 和 自启动软件的管理 这里禁止的自启动管理 对于有些软件是不太管用 比如美团 手机百度等 净化大师 主要完成 高电量的软件优化 ...
- QT textBrowser 使用
使用环境: VS2010 & QT Designer5 1. 在QT Designer 拖入 textBrowser,点击右键属性获得 name值 2. 在程序使用的地方 加入 ui.te ...
- day_10 py 字典
#!/usr/bin/env/python#-*-coding:utf-8-*-'''字典: (就是增加个索引名字,然后归类了一下) infor = {键:值,键:值} 列表存储相同的信息随着列表里面 ...
- 录制用户的音频,视屏 navigator.mediaDevices.getUserMedia
google 文档 HACKS 文档 相关代码 获取本地的音频 <input type="file" accept="audio/*" capture=& ...