JS中new操作符做了什么?
1.new操作符做了什么
new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。new 关键字会进行如下的操作:
创建一个空的简单JavaScript对象(即{});
链接该对象(即设置该对象的构造函数)到另一个对象 ;
将步骤1新创建的对象作为this的上下文 ;
如果该函数没有返回对象,则返回this。
2.简单实现
function create(Con, …args){
// 创建一个空的对象
let obj = Object.create(null);
// 将空对象指向构造函数的原型链
Object.setPrototypeOf(obj, Con.prototype);
// obj绑定到构造函数上,便可以访问构造函数中的属性,即obj.Con(args)
let result = Con.apply(obj, args);
// 如果返回的result是一个对象则返回
// new方法失效,否则返回obj
return result instanceof Object ? result : obj;
}
// 测试
function company(name, address) {
this.name = name;
this.address = address;
}
var company1 = create(company, ‘yideng’, ‘beijing’);
console.log('company1: ', company1);
更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120020124
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?