javascript - 将类属性设置为函数 - 创建类的实例时会调用该函数吗?

标签 javascript class function

如果我这样写:

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/

相关文章:

c++ - 在此 C++ 代码中以何种方式调用函数?

javascript - 随机选择所有表单字段值并填写表单 - JS 或 jQuery - 不确定是哪个

javascript - Chrome 扩展改变正在运行的 React 应用程序

javascript - 视口(viewport)与窗口与文档

javascript - Angularjs 和 yeoman 的当前位置

android - 获取所有应用程序的包名和类名

类中的 C++ 辅助函数,如何使用它们?

c++ - 反对作弊的指针

C#:循环查找函数的最小值

R:通过函数内的索引引用其他DF