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

js构造函数—11

好的!我们来深入讲讲 JavaScript 中的构造函数。这是理解 JavaScript 面向对象编程的基础。

什么是构造函数?

构造函数是一个特殊的函数,用于创建和初始化对象。当使用 new 关键字调用时,它会创建一个新对象,并将这个对象与构造函数的 prototype 关联起来。

基本语法

// 构造函数通常以大写字母开头(约定俗成)
function Person(name, age) {// this 指向新创建的对象实例this.name = namethis.age = age
}// 使用 new 关键字创建实例
const person1 = new Person('Alice', 25)
const person2 = new Person('Bob', 30)console.log(person1.name) // "Alice"
console.log(person2.age) // 30

new 关键字的作用机制

当使用 new 调用函数时,JavaScript 引擎会执行以下四个步骤:

function Person(name, age) {// 1. 隐式创建一个新对象:const obj = {}// 2. 设置原型链:obj.__proto__ = Person.prototype// 3. 将 this 绑定到新对象:this = objthis.name = namethis.age = age// 4. 如果函数没有返回对象,则隐式返回 this// return this;
}

构造函数的核心特性

1. 在原型上定义方法

为了内存效率,应该将方法定义在构造函数的 prototype 上:

function Person(name, age) {this.name = namethis.age = age
}// 方法定义在 prototype 上(所有实例共享)
Person.prototype.sayHello = function () {console.log(`Hello, I'm ${this.name}`)
}Person.prototype.getBirthYear = function () {const currentYear = new Date().getFullYear(
http://www.dtcms.com/a/414324.html

相关文章:

  • Kotlin轻量级互斥锁Mutext与轻量级信号量Semaphore异同比较
  • 【MySQL✨】MySQL 入门之旅 · 第十篇:数据库备份与恢复
  • k8s里三种探针的使用场景
  • 8.基于 Ingress-nginx-controller 实现 k8s 七层代理
  • Kling-Audio-Eval - 高质量视频到音频生成评估数据集
  • LeetCode 812.最大三角形的面积
  • 做网站都需要服务器吗域名类型
  • js逆向实战:爬取淘宝男装商品
  • 前端3.0
  • 机器视觉检测中,最小尺寸多少像素可以检测到?重点解析传统算法和深度学习,对比度很致命
  • 不同浏览器中高效维护需要登录网站的登录态
  • 【C++list】底层结构、迭代器核心原理与常用接口实现全解析
  • socket编程 netstat 大小端 rpc 协程 io yield
  • 网站建设与维护百度百科自己做app的软件
  • 制作公司网站要多少费用呢二手书交易网站策划书
  • 【vue3】watch、watchEffect、watchPostEffect和watchSyncEffect的区别详解
  • 【仿生机器人】核心采购清单 (仿生机器人头项目)
  • 云服务器 + Jenkins 实现项目自动化部署与上线
  • wordpress调用当前年份的7种方式
  • 通用性AI大模型辅助本科机器人课程完成编程项目的可靠性分析
  • 使用 EMQX 社区版 v5.8.7 将 MQTT 消息持久化到 MySQL 数据库的实践指南
  • MATLAB中的Excel文件操作:从入门到精通
  • SpringMVC 入门:核心概念与第一个 HelloWorld 案例
  • 山东省建设厅继续教育网站网站做商标在那类
  • 【Linux网络】Socket编程:UDP网络编程实现DictServer
  • 虚拟空间可以做视频网站么删除重装wordpress
  • 【Agent】在基于WSL2的Linux的ALSA输出音频
  • LeetCode:68.寻找两个正序数组的中位数
  • 在 Unity 中使用 SoundTouch 插件控制音频倍速播放
  • 通过keepalived搭建MySQL双主模式的MySQL集群