返回
JS 中new 原理与实现
前端
2024-02-15 08:40:56
JS 中new 运算符的原理
创建一个新的对象
const obj = new Object();
使用 new 运算符可以创建一个新的对象。这个对象是根据给定的构造函数(Object)创建的,并且它将继承构造函数的原型。
执行构造函数
function Person(name) {
this.name = name;
}
const person = new Person('John');
当使用 new 运算符创建一个对象时,构造函数也会被执行。这使得我们可以通过构造函数来初始化对象的属性和方法。
返回新创建的对象
const obj = new Object();
new 运算符返回新创建的对象。这个对象是根据给定的构造函数创建的,并且它将继承构造函数的原型。
构造函数的差异
普通函数与构造函数
function Person(name) {
this.name = name;
}
function Dog(name) {
this.name = name;
}
const person = new Person('John');
const dog = new Dog('Fido');
构造函数与普通函数的区别在于,构造函数在被调用时会自动创建一个新的对象,并且这个对象会继承构造函数的原型。普通函数则不会自动创建对象,它只是执行函数体中的代码。
带参与不带参构造函数
function Person(name) {
this.name = name;
}
function Dog() {
this.name = 'Fido';
}
const person = new Person('John');
const dog = new Dog();
构造函数可以是带参的,也可以是不带参的。带参构造函数可以接受参数并将其赋值给对象的属性。不带参构造函数不会接受参数,它会自动为对象创建一个默认值。
子类与父类构造函数
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
constructor(name) {
super(name);
this.bark = 'Woof!';
}
}
const dog = new Dog('Fido');
子类的构造函数可以继承父类的构造函数,并在此基础上添加新的属性和方法。这使得子类可以复用父类已有的功能,并在此基础上进行扩展。
总结
JS 中的 new 运算符可以创建一个新的对象。这个对象是根据给定的构造函数创建的,并且它将继承构造函数的原型。构造函数可以是带参的,也可以是不带参的。带参构造函数可以接受参数并将其赋值给对象的属性。不带参构造函数不会接受参数,它会自动为对象创建一个默认值。子类的构造函数可以继承父类的构造函数,并在此基础上添加新的属性和方法。这使得子类可以复用父类已有的功能,并在此基础上进行扩展。