当前位置: 首页 > article >正文

基于Javascript的封装、方法重载、构造方法

封装

封装是面向对象编程中的一个重要特性,指的是将对象的状态(属性)和行为(方法)绑定在一起,并隐藏对象的实现细节,只暴露必要的接口。JavaScript通过类(class)和对象字面量(object literal)来实现封装。

class Person {
    // 构造方法
    constructor(name, age) {
        this._name = name;  // 私有属性
        this._age = age;    // 私有属性
    }

    // 公开方法
    getName() {
        return this._name;
    }

    setName(name) {
        this._name = name;
    }

    getAge() {
        return this._age;
    }

    setAge(age) {
        this._age = age;
    }
}

const person = new Person('Alice', 30);
console.log(person.getName()); // 输出: Alice
person.setAge(31);
console.log(person.getAge()); // 输出: 31

方法重载

JavaScript 不像一些其他语言(如 Java)那样支持直接的方法重载。方法重载通常是指同一个方法名可以有不同的参数类型和数量判断。在 JavaScript 中,通常通过检查函数参数来模拟重载的效果。

function greet(name, age) {
  if (arguments.length === 1) {
    console.log(`Hello, ${name}`);
  } else if (arguments.length === 2) {
    console.log(`Hello, ${name}, age ${age}`);
  } else {
    console.log("Hello, unknown");
  }
}

greet("Alice"); // Hello, Alice
greet("Alice", 30); // Hello, Alice, age 30

构造方法

构造方法是用来创建和初始化对象的特殊方法。在 JavaScript 中,构造方法通常是类中的 constructor 方法。构造方法会在实例化对象时自动调用。

class Person {
    // 构造方法
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
}

const person = new Person('panda', 25);
console.log(person.name); // 输出: panda
console.log(person.age); // 输出: 25

总结

  1. 封装通过类和方法隐藏对象的内部实现。
  2. 方法重载可以通过检查参数类型和数量来实现。
  3. 构造方法用于初始化对象的属性。
  4. 构造代码块可以在构造方法内用代码块来实现初始化逻辑。

更多资源

Class 的基本语法 - ECMAScript 6入门


http://www.kler.cn/a/534151.html

相关文章:

  • MySQL UNION 操作详解
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_sprintf_str 函数
  • llama.cpp GGUF 模型格式
  • 移除元素-双指针(下标)
  • 7 与mint库对象互转宏(macros.rs)
  • 【Rust自学】16.4. 通过Send和Sync trait来扩展并发
  • 【ArcGIS Pro简介2】
  • 1. Kubernetes组成及常用命令
  • DeepSeek 与 ChatGPT 对比分析
  • Linux 常用命令与实战教程
  • HTTP请求响应周期步骤
  • 基于Ubuntu2404搭建Zabbix7.2
  • 1. 初识spark
  • 在 Spring Boot 项目中,bootstrap.yml 和 application.yml文件区别
  • 智慧楼宇的监控都用上3D形式了,2D要摒弃了。
  • 电脑开机提示按f1原因分析及终极解决方法来了
  • 【力扣】49.字母异位词分组
  • 消费kafka消息示例
  • 100.6 AI量化面试题:如何评估AI量化模型的过拟合风险?
  • 【Elasticsearch】Geo-distance聚合
  • 如何查看docker的containers 那个日志最大
  • Apache HttpClient
  • 在Spring Cloud中将Redis共用到Common模块
  • Redis有哪些常用应用场景?
  • Spring MVC ONE
  • WordPress自动SEO文章生成器——一款基于AI技术的智能插件,能够自动生成高质量、SEO优化的文章,并提供强大的内容采集与优化功能。