一:将私有方法移出模块,因为模块内部的所有方法都是对外可见的。

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

最新文章

  1. Android四大组件之actiivity
  2. Windows代码页、区域
  3. Goldengate trial队列维护
  4. 如何创建支持Eclipse IDE的Maven项目
  5. LabVIEW系列——错误簇的传递
  6. Struts2 学习第一步准备工作
  7. 在C#中实现串口通信的方法
  8. SQLContext、HiveContext自定义函数注册
  9. C# .NET 0配置使用Wcf(半成品)
  10. maven仓库有jar包还是报错怎么办?
  11. 9、el表达式的使用
  12. 计算机基础 & python基础
  13. SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.
  14. nmap工具简介
  15. Angular中的服务的使用
  16. C#Note13:如何在C#中调用python
  17. TODO java-awt中文乱码--疑惑
  18. springmvc注解方式
  19. Mac删除默认美国输入法
  20. 小试 boost spirit

热门文章

  1. 帧动画 AnimationDrawable
  2. ado.net(1)
  3. iOS中使用图片作为颜色的背景图
  4. JQuery EasyUI 对话框的使用方法
  5. Caused by: java.lang.NullPointerException, java.lang.reflect.InvocationTargetExc
  6. 武汉科技大学ACM:1001: 华科版C语言程序设计教程(第二版)习题6.7
  7. union关键字 与大小端模式
  8. Linux(Centos、Debian)之安装Java JDK及注意事项(转)
  9. 设置CentOS里的Mysql开启客户端远程连接
  10. 使用node-webkit开发Clover桌面客户端的一些记录(一)