gpt4 book ai didi

javascript - 为什么在新实例上调用方法?

转载 作者:行者123 更新时间:2023-11-28 11:50:03 27 4
gpt4 key购买 nike

当调用c1.rand时,我不清楚解释器如何访问this.num,因为构造函数尚未被调用。难道它不应该在 rand 中调用 constructor() 才能设置 this.num 的值吗?

class C {
constructor() {
this.num = Math.random();
}
rand() {
console.log( "Random: " + this.num );
}
}

var c1 = new C();
c1.rand(); // "Random: 0.4324299..." (any number from 0 to 1)

最佳答案

创建对象时会立即调用构造函数,因此当您调用时:

var c1 = new C();

调用构造函数。名称构造函数来自使用,它会立即被调用,因为它构造了对象。这意味着它初始化变量等 - 对对象来说至关重要的东西,this.num你的情况。是的,它是声明类时用于创建对象的保留函数。

new 关键字表示“新实例”,在创建新实例时,将调用构造函数。

关于javascript - 为什么在新实例上调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39259389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com