JavaScript中new关键字的作用
JavaScript中new关键字的作用
技术背景
JavaScript是一种动态的、支持面向对象编程范式的编程语言,它是基于原型的,而非基于类。在JavaScript里,new
关键字用于从构造函数创建对象实例,这在实现对象的创建和继承方面发挥着关键作用。
实现步骤
使用new
关键字调用构造函数时,会按以下步骤执行:
- 创建新对象:创建一个全新的对象,其类型为
object
。 - 设置原型:将新对象的内部
[[prototype]]
(即__proto__
)属性设置为构造函数的prototype
对象。 - 绑定
this
:使this
变量指向新创建的对象。 - 执行构造函数:执行构造函数,每当提到
this
时,都使用新创建的对象。 - 返回对象:返回新创建的对象,除非构造函数返回一个非
null
的对象引用,此时返回该对象引用。
核心代码
示例1:基本的构造函数使用
1 |
|
示例2:模拟new
关键字的实现
1 |
|
最佳实践
构造函数命名规范
构造函数的名称通常使用大写字母开头,以提示开发者需要使用new
关键字调用。
1 |
|
使用原型添加共享属性和方法
可以通过构造函数的prototype
属性为所有实例添加共享的属性和方法。
1 |
|
常见问题
不使用new
关键字调用构造函数
如果不使用new
关键字调用构造函数,this
将指向全局对象(在浏览器中是window
对象),这可能会导致意外的结果。
1 |
|
构造函数中显式返回对象
如果构造函数中显式返回一个非null
的对象,new
表达式将返回该对象,而不是新创建的对象。
1 |
|
JavaScript中new关键字的作用
https://119291.xyz/posts/javascript-new-keyword-explanation/