详解JavaScript如何设置私有属性

 更新时间:2024年03月24日 16:42:57   作者:zbsnzj  
这篇文章主要为大家详细介绍了在JavaScript中如何设置私有属性,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下

ES6之前的私有属性模拟

1、构造函数形式创建对象

function Person(name) {
  let _name = name; // 私有属性
 
  this.getName = function() {
    return _name;
  };
 
  this.setName = function(newName) {
    _name = newName;
  };
}
 
let person = new Person('Alice');
console.log(person.getName()); // Alice
person.setName('Bob');
console.log(person.getName()); // Bob
// console.log(person._name); // 这会报错,因为_name是私有的

在这个例子中,_name是一个私有属性,因为它是在函数作用域内定义的,外部无法直接访问。

2、字面量形式创建对象

let obj = (function() {
  let privateVar = 'I am private';
 
  return {
    publicMethod: function() {
      console.log(privateVar);
    }
  };
})();
 
obj.publicMethod(); // 正确访问私有变量
// console.log(obj.privateVar ); // 这会报错,因为privatVvar是私有的

在这个例子中,privatVvar是一个真正的私有变量,因为它是在一个立即执行函数表达式(IFEe)的作用域内定义的,外部代码无法直接访问。我们通过返回的对象中的publiMmethod方法来暴露对privatVvar的访问。

ES6中创建私有属性

class Person {
  #name; // 私有属性
 
  constructor(name) {
    this.#name = name;
  }
 
  getName() {
    return this.#name;
  }
 
  setName(newName) {
    this.#name = newName;
  }
}
 
let person = new Person('Alice');
console.log(person.getName()); // Alice
person.setName('Bob');
console.log(person.getName()); // Bob
// console.log(person.#name); // 这会报错,因为#name是私有的

私有属性的好处

私有属性有以下好处:

1.封装性:私有属性可以隐藏类的内部实现细节,只暴露必要的接口给外部使用。

2.安全性:防止外部代码随意修改类的内部状态,可能导致错误或不一致的状态。

3.维护性:当类的内部实现发生变化时,只要保持接口不变,就不会影响到使用该类的其他代码。

到此这篇关于详解JavaScript如何设置私有属性的文章就介绍到这了,更多相关JavaScript设置私有属性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript中的一些注意事项 更新中

    javascript中的一些注意事项 更新中

    记录一下这些内容只是以后查阅起来方便,作为自己知识积累的记录。其中有很多是参考网络上的资源,不再一一写出出处,还请原作者见谅。
    2010-12-12
  • JS面向对象编程实现的Tab选项卡案例详解

    JS面向对象编程实现的Tab选项卡案例详解

    这篇文章主要介绍了JS面向对象编程实现的Tab选项卡,结合具体案例形式详细分析了JS基于面向对象程序设计实现Tab选项卡的相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • 深入理解setTimeout函数和setInterval函数

    深入理解setTimeout函数和setInterval函数

    下面小编就为大家带来一篇深入理解setTimeout函数和setInterval函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JavaScript中的DOM遍历详解

    JavaScript中的DOM遍历详解

    文档对象模型 (DOM) 表示 HTML 文档的结构,导航或“遍历”此结构是 Web 开发的基本方面,使开发人员能够在网页上选择、修改、删除或添加内容,本文深入研究了使用 JavaScript 进行 DOM 遍历的艺术,提供了一个强大的工具包来处理各种遍历场景
    2023-09-09
  • js中递归函数的使用介绍

    js中递归函数的使用介绍

    所谓的递归函数就是在函数体内调用本函数。使用递归函数一定要注意,处理不当就会进入死循环。递归函数只有在特定的情况下使用 ,比如阶乘问题
    2012-10-10
  • javascript实现图片循环渐显播放的方法

    javascript实现图片循环渐显播放的方法

    这篇文章主要介绍了javascript实现图片循环渐显播放的方法,涉及javascript操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • JS正则表达式学习之贪婪和非贪婪模式实例总结

    JS正则表达式学习之贪婪和非贪婪模式实例总结

    这篇文章主要介绍了JS正则表达式学习之贪婪和非贪婪模式用法,结合实例形式总结分析了JS正则表达式中贪婪模式与非贪婪模式的具体功能、使用方法与相关注意事项,需要的朋友可以参考下
    2016-12-12
  • 点击显示指定元素隐藏其他同辈元素的方法

    点击显示指定元素隐藏其他同辈元素的方法

    点击显示指定元素并隐藏其他同辈元素,下面有个不错的方法,需要的朋友可以参考下
    2014-02-02
  • 前端小知识之??= 操作符更简洁的默认值处理方式

    前端小知识之??= 操作符更简洁的默认值处理方式

    这篇文章主要介绍了前端小知识之??= 操作符更简洁的默认值处理方式的相关资料,??=操作符是JavaScript中用于设置默认值的新操作符,它仅在变量值为null或undefined时才赋值,需要的朋友可以参考下
    2024-11-11
  • javascript基础知识之html5轮播图实例讲解(44)

    javascript基础知识之html5轮播图实例讲解(44)

    这篇文章主要为大家详细介绍了javascript基础知识之html5轮播图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论