Zlog
首页归档关于
Zlog

一个探索技术、编程和构建 Web 的个人空间。

© 2026 Zlog

导航

首页归档关于

链接

/
|
·
·
·
首页/new

new

创建类的新实例,必须调用 new 操作符,以这种方式调用构造函数实际经历了四步:

Z

Zephyr110

2020年1月1日·1 分钟
|
frontendfrontend-javascript

1. 过程

创建类的新实例,必须调用 new 操作符,以这种方式调用构造函数实际经历了四步:

“
  1. 创建一个新对象
  2. 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象)
  3. 执行构造函数中的代码(为这个新对象添加属性)
  4. 返回新对象

2. 实现一个简单的 new 方法

js
// 构造器函数
let Parent = function(name, age) {
	this.name = name;
	this.age = age;
};
Parent.prototype.sayName = function() {
	console.log(this.name);
};
 
// 自定义的new方法
let newMethod = function(Parent, ...rest) {
	// 1. 以构造器的prototype属性为原型,创建新对象
	let child = Object.create(Parent.prototype);
 
	//2.将this和调用参数传给构造器执行
	Parent.apply(child, rest);
 
	//3.返回第一步创建的对象
	return child;
};
 
// 创建实例,将构造器函数Parent与形参作为参数传入
const child = newMethod(Parent, 'A', 22);
child.sayName(); // A;
 
// 检验,与使用new效果相同
child instanceof Parent; //true
child.hasOwnProperty('name'); //true
child.hasOwnProperty('age'); //true
child.hasOwnProperty('sayName'); //false

标签

frontendfrontend-javascript

评论 (0)

评论功能仅在主站可用,请访问 zephyr110.vercel.app

相关文章

OffscreenCanvas

MDN-OffscreenCanvas

2025年12月10日·7 分钟

Service Worker

Web worker 是一种在浏览器中运行的后台脚本,它可以在独立的线程中执行任务,而不会阻塞主线程的执行。Web worker 的主要作用是处理耗时的计算任务,例如图片处理、文本分析、数据处理等,以避免阻塞主线程,提高页面的响应性能

2024年5月28日·4 分钟

vue-tour二次封装

npm install vue-tour

2023年7月22日·7 分钟

← 返回文章列表