es6 class类实例、静态、私有方法属性笔记
实例属性、方法
class Foo {
valueA = 100 //第一种实例属性定义,位置:new的实例上
constructor() {
this.valueB = 200 //第二种实例属性定义,位置:new的实例上
}
methodA() { //实例方法,位置:Foo.prototype
this.valueC = 300
}
}
let foo = new Foo()
foo
Foo {valueA: 100, valueB: 200}
foo.methodA() //foo.methodA === foo.__proto__.methodA === Foo.prototype.methodA
foo
Foo {valueA: 100, valueB: 200, valueC: 300}
静态属性、方法
不会被实例继承,可以被子类继承。直接通过类来调用
直接类.属性(Foo.valueA)的方式,实质是调用Foo / Foo.prototype.constructor的属性 class Foo { static valueA = 100 //静态属性,位置:类本身,Foo / Foo.prototype.constructor上
//Foo.valueA = 1; 也可以这样定义静态属性
static methodA() { //静态方法,位置:类本身,Foo / Foo.prototype.constructor上
this.valueC = 300 //this => 类
} } class Bar extends Foo { }
私有属性、方法
只能在类的内部使用(this.#count) class Foo {
#a;
#b; constructor(a, b) {
this.#a = a;
this.#b = b;
} #sum() {
return #a + #b;
} printSum() {
console.log(this.#sum());
} }
es6 class类实例、静态、私有方法属性笔记的更多相关文章
- ES6 class类中定义私有变量
ES6 class类中定义私有变量 class类的不足 看起来, es6 中 class 的出现拉近了 JS 和传统 OOP 语言的距离.但是,它仅仅是一个语法糖罢了,不能实现传统 OOP 语言一样的 ...
- Python的程序结构[1] -> 方法/Method[0] -> 类实例方法、私有方法和抽象方法
类实例方法.私有方法和抽象方法 Python中最常用的就是类实例方法,类似于属性中的类实例属性,同时,也存在与私有属性类似方法,即私有方法,下面介绍这两种常见的方法,以及一种特殊意义的类实例方法 -- ...
- PHP类的静态(static)方法和静态(static)变量使用介绍
PHP类的静态(static)方法和静态(static)变量使用介绍,学习php的朋友可以看下 在php中,访问类的方法/变量有两种方法: 1. 创建对象$object = new Class ...
- Java 8 Collectors 类的静态工厂方法
摘自<<Java 8 实战>> Collectors 类的静态工厂方法 工厂方法 返回类型 用于 toList List<T> 把流中所有项目收集到一个 List ...
- PHP通过反射方法调用执行类中的私有方法
PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 下面我们演示一下如何通过反射,来调用执行一个类中的私有方法: <?php //MyClass这个类中包 ...
- 利用java反射调用类的的私有方法--转
原文:http://blog.csdn.net/woshinia/article/details/11766567 1,今天和一位朋友谈到父类私有方法的调用问题,本来以为利用反射很轻松就可以实现,因为 ...
- 【很变态】PHP类实例化对象竟然可以访问类的“静态(static)方法”!!!
之前发现一个PHP的变态问题:PHP中静态(static)调用非静态方法详解 这次看了下 ThinkPHP 的源码 function.inc.php ,里面有个函数: /** * 取得对象实例 支持调 ...
- 如何访问python类中的私有方法
在python中,不像c#/java类语言,支持类的私有方法,这点有点像objc,虽然objc可以通过扩展extension来实现,但源于objc的运行时特性,我们还是可以通过非常手段来进行访问的.不 ...
- 实例/静态工厂方法得到bean
<bean id="a" class="com.yundaex.wms.config.TestBeanChild" /> <bean id=& ...
随机推荐
- JavaScript高性能开发的十条建议
JavaScript高性能开发的十条建议 文/开发部 Dimmacro 编者按:javascript开发大部分程序员都做过,写出来的代码质量也千差万别,现在浏览器内嵌的解释器虽然效率已经很高了,但在客 ...
- 手把手教你在Mac中搭建iOS的 React Native环境
准备工作 1.你需要一台Mac电脑..(这不是废话?我所用的是Air~~穷..) 2.我所操作的电脑系统环境是 3.xcode版本:8.0正式版 必需的软件 1.Homebrew Homebrew, ...
- 解决php -v查看到版本于phpinfo()打印的版本不一致问题
https://blog.csdn.net/haif_city/article/details/81315372 整个事件的起因是这样的 通过git拉取laraevl项目发现缺少.env文件,打算使用 ...
- CentOS&.NET Core初试-3-Nginx的安装和配置
系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) Nginx简介 Nginx是一个免费的,开源的,高 ...
- 1、The Fctory Pattern(工厂模式:解决对象创建问题)
The Fctory Pattern 处理对象创建,客户端可以申请一个对象而不用知道对象被那个class创建.可以方便地解耦对象的使用和创建,有两种实现,工厂方法和抽象工厂. Method(工厂方法 ...
- 自学springboot
参考资料 https://www.renren.io/guide/
- 1.CSS中的定位机制
标准文档流(Normal flow) 特点: 从上到下,从左到右,输出文档内容 由块级元素和行级元素组成 块级元素: 从左到右撑满页面,独占一行 触碰到页面边缘时,会自动换行 块级标签: div.ul ...
- Node.js Mongoose数据库连接失败 提示:Authentication failed
mongoose.connect('mongodb://username:password@127.0.0.1:27017/qianxunkefu_db')换成mongoose.connect('mo ...
- Log4J 配置文件模板及代码说明
相对而言,这个日志系统的配置就没那么随意了,而且有些功能用起来也不是那么爽,譬如动态读取配置文件.不过鉴于使用这个日志的系统还是很多,所以也写一个demo贴出来,风格跟log4j2一样,配置的说明全在 ...
- Java Hashtable 源码(JDK8)
记录了HashMap也来看看Hashtable吧,最近打算换份实习,所以想看看书回顾一下,不然就快记不得了.....囧啊囧啊,记性太差怎么破??? Hashtable里面的一些变量: Entry< ...