new 的模拟实现

简介: new 的模拟实现

什么是 new?

new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一

手动实现

// 第二版的代码
function objectFactory() {
  var obj = new Object(); // 创建一个对象
  Constructor = [].shift.call(arguments); // 取出构造函数
  obj.__proto__ = Constructor.prototype; // 对象的原型指向构造函数的原型
  var ret = Constructor.apply(obj, arguments); // 将剩余参数传入构造函数
  return typeof ret === "object" ? ret : obj; // 返回这个对象
}

使用

function Otaku () {
    ……
}

// 使用 new
var person = new Otaku(……);
// 使用 objectFactory
var person = objectFactory(Otaku, ……)
目录
相关文章
|
Linux 虚拟化 Windows
Linux、Windows上还不会端口映射的网工,请低调看过来!
Linux、Windows上还不会端口映射的网工,请低调看过来!
502 0
|
人工智能 搜索推荐 知识图谱
AI家庭医生助手:用智能技术守护全家健康
AI家庭医生助手融合医疗大模型、知识图谱与多模态交互技术,打造7×24小时智能健康服务,精准理解需求、动态监测体征、提供个性化建议。聚焦慢病管理、日常咨询与预防预警,实现高效初筛与医患协同,提升医疗资源可及性,助力数字健康普惠。
598 0
|
存储 监控 算法
美团面试:说说 G1垃圾回收 底层原理?说说你 JVM 调优的过程 ?
尼恩提示: G1垃圾回收 原理非常重要, 是面试的重点, 大家一定要好好掌握
美团面试:说说 G1垃圾回收 底层原理?说说你 JVM 调优的过程  ?
|
JSON 数据库 数据格式
gorm 自定义数据的使用
gorm 自定义数据的使用
230 0
|
存储 安全 API
利用环境变量管理配置:最佳实践与技巧
本文介绍了如何利用环境变量管理应用程序配置,涵盖安全性、灵活性和简化部署等方面的优势。详细探讨了最佳实践,包括避免敏感信息泄露、使用`.env`文件、环境特定配置、环境变量注入与验证,以及使用第三方服务。同时分享了一些实用技巧,如分层管理、环境变量加密和版本控制。旨在帮助开发者更高效、安全地管理应用配置。
|
前端开发 JavaScript 应用服务中间件
Nginx 支持 JavaScript:前所未有的扩展
Nginx 是全球领先的高性能 Web 服务器,以其高效的反向代理和负载均衡功能著称。近期,Nginx 正式支持 JavaScript(通过 NJS 模块),基于 V8 引擎,允许在配置中嵌入 JS 代码,极大提升了灵活性和扩展性。开发者可以使用 JavaScript 实现动态请求处理、自定义认证、复杂响应处理、中间件编写及流量控制等功能,显著降低开发和维护难度,同时保持高性能。NJS 模块的引入为 Nginx 带来了前所未有的扩展能力,适应快速变化的业务需求。
457 0
|
SQL 分布式计算 DataWorks
享受成本分析自由,体验账单数据订阅及查询分析功能
使用DataWorks进行账单数据订阅和查询分析,您可以有效地管理和可视化您的阿里云消费数据。本指南提供了详细步骤和示例,帮助您快速入门实现账单数据的高效分析。
1173 9
享受成本分析自由,体验账单数据订阅及查询分析功能
【Hexo】butterfly主题添加备案信息
【Hexo】butterfly主题添加备案信息
1025 0
【Hexo】butterfly主题添加备案信息
|
监控 Linux
cento如何查看网口
【6月更文挑战第29天】cento如何查看网口
978 6
|
传感器 大数据 物联网
大数据类型与特征
【4月更文挑战第9天】大数据包含交易、人为、移动及机器传感器数据,特征表现为大量、高速、多样、可变、真实、复杂和有价值。它影响商业决策、市场分析和科学研究,展现巨大潜力。
762 3