当我们在JavaScript中使用new
关键字来创建一个对象时,实际上会发生以下过程:
- 创建一个新对象。这个新对象继承了它的构造函数的
prototype
属性。
function Person(name) {
this.name = name;
}
let person = new Person('小明');
在这个例子中,创建了一个名为Person
的构造函数,它有一个名为name
的属性。然后,我们使用new
关键字创建了一个名为person
的新对象,该对象继承了Person
的prototype
属性。
- 对象属性的初始化。在创建新对象时,会自动对它的属性进行初始化。如果在构造函数中没有明确指定某个属性,则该属性的值将初始化为
undefined
。
function Person(name) {
this.name = name;
this.age = 18;
}
let person = new Person('小明');
在这个例子中,我们将Person
的构造函数改变,现在它有两个属性:name
和age
。当我们使用new
关键字创建一个新的person
对象时,name
属性会被初始化为'小明'
,而age
属性会被初始化为18
。如果我们不在构造函数中指定age
的值,则它将被初始化为undefined
。
- 构造函数的执行。在这个步骤中,会执行构造函数中的代码,以便进一步初始化
new
对象。
function Person(name) {
this.name = name;
this.age = 18;
this.sayHi = function() {
console.log(`Hi, my name is ${this.name}.`);
}
}
let person = new Person('小明');
person.sayHi(); // Hi, my name is 小明.
在这个例子中,当我们调用new Person('小明')
时,会执行Person
构造函数中的代码,以进一步初始化person
对象。在这个例子中,我们添加了一个sayHi
方法,当我们调用该方法时,将输出Hi, my name is 小明.
。
以上就是在JavaScript中使用new
关键字创建对象的过程和演示,在对象初始化之前会先检查构造函数中是否存在方法,存在则创建对象时原型链上不会被初始化,直接指向一个空对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中new一个对象的过程 - Python技术站