前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js中new操作符做了什么

js中new操作符做了什么

原创
作者头像
用户10562852
发布2023-05-23 22:17:12
1.4K0
发布2023-05-23 22:17:12
举报
文章被收录于专栏:前端不难前端不难

1、创建一个空对象

2、将空对象的原型链指向该构造函数的原型链

3、执行构造函数,将this绑定到空对象中

4、根据构造函数的返回值做判断,若是原始数据则忽略,若是对象的话则正常返回处理,若没有默认返回this

代码语言:javascript
复制
function Foo(name, age) {
	this.name = name;
	this.age = age;
    // 如果这里返回了一个基本数据,或者没有返回值,就返回当前实例对象
    // 如果这里返回了一个对象,则返回该对象
}
console.log(new Foo('zs', 23))

// 创建一个类似new操作符的函数
function newTest(Fn, ...arg) {
	let obj = {};
	Object.setPrototypeOf(obj, Fn.prototype);
	let res = Fn.apply(obj, arg);
	return res instanceof Object ? res : obj
}
console.log(newTest(Foo, 'lisi', 18))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档