NodeJS class 总是 returns 未定义
NodeJS class always returns undefined
我试图将值从一个 class 传递到另一个 js 文件,但在所有尝试中它总是 returns 我未定义。
这是我的舞台
config.js
class Token {
_token = '';
constructor(token) {
this._token = token;
}
get getToken() {
return this._token;
}
}
class Url {
get getUrl() {
return 'https://api.com';
}
}
exports.token = Token;
exports.url = Url;
instance.js
const config = require('./config');
let tkn = new config.token();
console.log('tkn', tkn.getToken);
console.log('TKN', config.token.getToken);
let url = new config.url();
console.log('URL', config.url.getUrl);
console.log('url', tkn.getUrl);
脚本的正确用法是
const config = require('./config');
let tkn = new config.token('value');
// ^^^^^^^^
console.log('tkn', tkn.getToken); // value
let url = new config.url();
console.log('url', url.getUrl); // https://api.com
// ^^^
您定义的 getter 属性不是静态的,您无法在 config.token
或 config.url
上访问它们。
这里我评论了问题:
const config = require('./config');
let tkn = new config.token(); // Token constructor expects an argument.
console.log('tkn', tkn.getToken); // This is correct and will work provided the constructor argument.
console.log('TKN', config.token.getToken); // You must instantiate the token and use the instance.
let url = new config.url();
console.log('URL', config.url.getUrl); // Same as with the token. It must be instantiated and getUrl accessed through that instance.
console.log('url', tkn.getUrl); // Here you're trying to call getUrl of the Token class but it doesn't exist.
固定版本
const config = require('./config');
let tkn = new config.token("token");
console.log('tkn', tkn.getToken);
let url = new config.url();
console.log('URL', url.getUrl);
您的 instance.js 文件将类似于此
const config = require('./config');
config.url.getUrl();
和config.js文件
class Token {
_token = '';
constructor(token) {
this._token = _token;
}
static getToken() {
return this._token;
}
}
class Url {
static getUrl() {
//return 'https://api.com';
console.log("something")
}
}
exports.token = Token;
exports.url = Url;
我试图将值从一个 class 传递到另一个 js 文件,但在所有尝试中它总是 returns 我未定义。 这是我的舞台
config.js
class Token {
_token = '';
constructor(token) {
this._token = token;
}
get getToken() {
return this._token;
}
}
class Url {
get getUrl() {
return 'https://api.com';
}
}
exports.token = Token;
exports.url = Url;
instance.js
const config = require('./config');
let tkn = new config.token();
console.log('tkn', tkn.getToken);
console.log('TKN', config.token.getToken);
let url = new config.url();
console.log('URL', config.url.getUrl);
console.log('url', tkn.getUrl);
脚本的正确用法是
const config = require('./config');
let tkn = new config.token('value');
// ^^^^^^^^
console.log('tkn', tkn.getToken); // value
let url = new config.url();
console.log('url', url.getUrl); // https://api.com
// ^^^
您定义的 getter 属性不是静态的,您无法在 config.token
或 config.url
上访问它们。
这里我评论了问题:
const config = require('./config');
let tkn = new config.token(); // Token constructor expects an argument.
console.log('tkn', tkn.getToken); // This is correct and will work provided the constructor argument.
console.log('TKN', config.token.getToken); // You must instantiate the token and use the instance.
let url = new config.url();
console.log('URL', config.url.getUrl); // Same as with the token. It must be instantiated and getUrl accessed through that instance.
console.log('url', tkn.getUrl); // Here you're trying to call getUrl of the Token class but it doesn't exist.
固定版本
const config = require('./config');
let tkn = new config.token("token");
console.log('tkn', tkn.getToken);
let url = new config.url();
console.log('URL', url.getUrl);
您的 instance.js 文件将类似于此
const config = require('./config');
config.url.getUrl();
和config.js文件
class Token {
_token = '';
constructor(token) {
this._token = _token;
}
static getToken() {
return this._token;
}
}
class Url {
static getUrl() {
//return 'https://api.com';
console.log("something")
}
}
exports.token = Token;
exports.url = Url;