如果我这样写:
function thing() {
this.timer = Date.now();
}
Date.now()
会在每次创建类实例时返回创建该类实例的时间,还是继续返回脚本加载的时间?
抱歉提出了菜鸟问题。
最佳答案
每次调用构造函数时,都会执行构造函数的主体。就像任何其他功能一样。由于构造函数的主体调用 Date.now
,因此每次都会调用它。
如果不是每次都执行,每个实例都会共享所有相同的属性...这有点违背了它的意义!
但是,您可能一直在考虑 thing.prototype
。如果您将timer
设置为其属性,则不会为每个实例化评估它,并且每个实例将共享相同的属性(因此具有相同的值):
thing.prototype.timer = Date.now(); // Not what you want!
看看this example 。请注意前 2 次不同,后 2 次相同。
关于javascript - 将类属性设置为函数 - 创建类的实例时会调用该函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14279934/