Javascript中如何定义私有属性?

    互联网/前端 82次点击 · 1235天前 · 清风醉
Word怎么批量删除分隔符?PPT里的图表数据无法编辑怎么办? 清风醉

1条回答我要回复

    燕子1235天前

      分享一个Javascrip小技巧:Javascript中是如何定义私有属性(Private Properties)的?

      和很多高级语言不同,Javascript 中没有 public、private、protected 这些访问修饰符(access modifiers),而且长期以来也没有私有属性这个概念,对象的属性/方法默认都是public的。虽然目前 class 的私有属性特性已经进入了 Stage3 实验阶段。通过 Babel 已经可以使用,并且 Node v12 中也增加了对私有属性的支持,但这并不妨碍我们用 JS 的现有功能实现一个私有属性特性,以加深对这一概念的理解。
       


      私有属性(方法)的意义在于将模块的内部实现隐藏起来,而对外接口只通过public成员进行暴露,以减少其他模块对该模块内部实现的依赖或修改,降低模块的维护成本。


       
      IIFE 实现
      IIFE(立即执行函数) 大家应该耳熟能详了,IIFE 经常被用来:
      定义一个自执行的匿名函数 创建一个局部作用域,避免对全局产生污染
      基于以上特性,用 IIFE 可以给一个对象实现简单的私有属性:

      测试一下:

      IIFE 的实现简单易懂,但是只能作用于单个对象,而不能给 Class 或者构造函数定义私有属性。

    请先登录后,再回复