当调用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/