📅  最后修改于: 2023-12-03 15:05:39.068000             🧑  作者: Mango
在JavaScript中,当你没有使用new
关键字来实例化一个类时,你将会遇到TypeError
,该错误将会告诉你没有类构造函数模型(即类的实例)无法调用。
在面向对象编程中,构造函数是一个类的特殊方法,用于创建和初始化该类的实例。在JavaScript中,构造函数是一个普通函数,但使用new
关键字调用时,它将返回一个对象。
class Person {
constructor(name) {
this.name = name;
}
}
const john = new Person('John');
console.log(john.name); // output: 'John'
在上面的示例中,Person
是一个构造函数。它有一个参数name
,用于初始化Person
对象的name
属性。我们使用new
关键字来调用Person
构造函数,并将其存储到john
变量中。
new
关键字创建类的实例在JavaScript中,当你使用new
关键字来调用类的构造函数时,它将返回一个新的对象。如果在调用构造函数时没有使用new
关键字,则会出现TypeError
错误。
class Person {
constructor(name) {
this.name = name;
}
}
const john = Person('John'); // TypeError: Cannot call a class constructor without specifying the "new" keyword
在上面的示例中,我们尝试在不使用new
关键字的情况下调用Person
构造函数。这将导致TypeError
错误,因为JavaScript不知道如何处理这种情况。
要避免这种错误,你需要始终使用new
关键字来创建类的实例。这将告诉JavaScript要将构造函数作为一个类来处理,并返回一个对象。
class Person {
constructor(name) {
this.name = name;
}
}
const john = new Person('John');
console.log(john.name); // output: 'John'
在上面的示例中,我们正确地使用了new
关键字来创建Person
类的实例,并将其存储在john
变量中。现在,我们可以访问john
的name
属性,并将其输出到控制台。