手动阀

Good Luck To You!

js 静态动态成员 and 信息的封装和隐藏

在JavaScript中,静态成员和动态成员是对象属性的两种类型,静态成员是在类定义时直接声明的成员,而动态成员是在类的实例化过程中添加的成员。

js 静态动态成员 and 信息的封装和隐藏

信息的封装和隐藏是通过使用闭包和作用域来实现的,通过将数据和方法封装在一个函数内部,可以限制外部对数据的访问,从而保护数据的安全性和完整性。

下面是一个示例,展示了如何在JavaScript中使用静态成员、动态成员以及如何封装和隐藏信息:

js 静态动态成员 and 信息的封装和隐藏

class Person {
  // 静态成员
  static species = 'Homo sapiens';
  constructor(name, age) {
    // 动态成员
    this.name = name;
    this.age = age;
  }
  // 方法
  introduce() {
    console.log(Hello, my name is ${this.name} and I am ${this.age} years old.);
  }
}
// 创建Person类的实例
const person1 = new Person('Alice', 30);
person1.introduce(); // 输出: Hello, my name is Alice and I am 30 years old.
// 访问静态成员
console.log(Person.species); // 输出: Homo sapiens
// 封装和隐藏信息
function createPerson(name, age) {
  let privateName = name; // 私有变量
  let privateAge = age; // 私有变量
  return {
    // 公开方法
    introduce: function() {
      console.log(Hello, my name is ${privateName} and I am ${privateAge} years old.);
    },
    // 公开方法修改私有变量
    setAge: function(newAge) {
      if (newAge > 0) {
        privateAge = newAge;
      } else {
        console.log('Invalid age');
      }
    }
  };
}
const person2 = createPerson('Bob', 25);
person2.introduce(); // 输出: Hello, my name is Bob and I am 25 years old.
person2.setAge(30);
person2.introduce(); // 输出: Hello, my name is Bob and I am 30 years old.

在这个示例中,我们定义了一个Person类,其中包含一个静态成员species和一个动态成员nameage,我们还定义了一个introduce方法来介绍这个人。

我们使用闭包创建了一个createPerson函数,该函数返回一个对象,该对象具有私有变量privateNameprivateAge,以及公开的方法introducesetAge,这些私有变量只能通过公开的方法进行访问和修改,从而实现了信息的封装和隐藏。

js 静态动态成员 and 信息的封装和隐藏

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.