我正在尝试创建一个当前有一个getter的设置类,它看起来像这样:
class Settings {
get domain() { return 'http://example.com'; }
}
module.exports.Settings = Settings;
在另一个文件中,我尝试加载它并显示getter的值,如下所示:
const Settings = require('./Settings');
console.log(Settings.domain);
当我运行该应用时,我的console.log()
会打印undefined
。我不确定为什么会这样做。我忘了做某事吗?
答案 0 :(得分:1)
定义类似的类时,class
块中列出的所有属性都附加到类的原型。 Settings
本身实际上是一个功能;你可以把它想象成一个构造函数。
原型上的domain
getter将在Settings
的实例上提供,但它没有附加到函数对象Settings
本身
您可以通过两种方式访问它:
// create an instance of Settings
var settings = new Settings();
console.log(settings.domain); // => 'http://example.com'
// access Settings' prototype directly
console.log(Settings.prototype.domain); // => 'http://example.com'
也可以将domain
getter定义为static
,这意味着它应该在类函数本身而不是原型上可用:
// static getter
class Settings {
static get domain() { return 'http://example.com'; }
}
console.log(Settings.domain); // => 'http://example.com'
答案 1 :(得分:1)
这是我做的:
const Settings = require('./test').Settings;
const set = new Settings();
console.log(set.domain);
或者在你的情况下:
first_open