为什么在新实例中调用方法

why is method called upon new instance?

本文关键字:调用 方法 实例 新实例 为什么      更新时间:2023-09-26

c1.rand被调用时,我不清楚解释器如何能够访问this.num,因为构造函数还没有被调用。为了设置this.num的值,它不应该在rand中调用constructor()吗?

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关键字表示"新实例",在创建新实例时,调用构造函数。

当c1。我不清楚翻译是如何访问这个的。Num,因为还没有调用构造函数。

是的,有。您在编写

时调用了构造函数
var c1 = new C();

是否只有构造函数称为b/c构造函数是一个特殊关键字?

是的,如果一个class定义了一个constructor函数,它将在你用new关键字调用类时被调用。

constructor属性也可以通过实例的原型访问。

var c1 = new C();
c1.constructor === C //=> true