JavaScript 类私有方法的实现
2024-08-26 04:26:53
一:将私有方法移出模块,因为模块内部的所有方法都是对外可见的。
class Widget {
foo (baz) {
bar.call(this, baz);
} // ...
} function bar(baz) {
return this.snaf = baz;
}
foo
是公有方法,内部调用了bar.call(this, baz)
。这使得bar
实际上成为了当前模块的私有方法。
二:利用Symbol
值的唯一性,将私有方法的名字命名为一个Symbol
值。
const bar = Symbol('bar');
const snaf = Symbol('snaf'); export default class myClass{ // 公有方法
foo(baz) {
this[bar](baz);
} // 私有方法
[bar](baz) {
return this[snaf] = baz;
} // ...
};
参考链接:http://es6.ruanyifeng.com/#docs/class
最新文章
- Android四大组件之actiivity
- Windows代码页、区域
- Goldengate trial队列维护
- 如何创建支持Eclipse IDE的Maven项目
- LabVIEW系列——错误簇的传递
- Struts2 学习第一步准备工作
- 在C#中实现串口通信的方法
- SQLContext、HiveContext自定义函数注册
- C# .NET 0配置使用Wcf(半成品)
- maven仓库有jar包还是报错怎么办?
- 9、el表达式的使用
- 计算机基础 &; python基础
- SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.
- nmap工具简介
- Angular中的服务的使用
- C#Note13:如何在C#中调用python
- TODO java-awt中文乱码--疑惑
- springmvc注解方式
- Mac删除默认美国输入法
- 小试 boost spirit
热门文章
- 帧动画 AnimationDrawable
- ado.net(1)
- iOS中使用图片作为颜色的背景图
- JQuery EasyUI 对话框的使用方法
- Caused by: java.lang.NullPointerException, java.lang.reflect.InvocationTargetExc
- 武汉科技大学ACM:1001: 华科版C语言程序设计教程(第二版)习题6.7
- union关键字 与大小端模式
- Linux(Centos、Debian)之安装Java JDK及注意事项(转)
- 设置CentOS里的Mysql开启客户端远程连接
- 使用node-webkit开发Clover桌面客户端的一些记录(一)