我刚刚问了这个问题,我以为它已经解决了,但事实并非如此..所以又来了..对双重帖子表示歉意..
我有一个文件:block.js:
class Block{
constructor(timeStamp, lastBlockHash, thisBlockData, thisBlockHash){
this.timeStamp = timeStamp;
this.lastBlockHash = lastBlockHash;
this.thisBlockData = thisBlockData;
this.thisBlockHash = thisBlockHash;
}
static genesis(){
return new Block(Date.now(), "---", "This is the genesis block", "hash of the genesis");
}
}
另一个文件:blockchain.js:
const Block = require('./block');
class BlockChain{
constructor() {
this.chain = Block.genesis();
}
}
module.exports = {BlockChain};
最后是一个测试文件test.js:
const BlockChain = require("./blockchain.js");
let blockChainInstance = new BlockChain();
console.log(blockChainInstance.chain);
test.js 文件的输出显示“未定义”而不是创世 block 。从早上起这对我来说一直是个谜。如果有人能为我解决这个问题,我将非常感激。
干杯, 等
最佳答案
不确定这是否是问题的根本原因,但在 blockchain.js 中,您基本上将类导出为
module.exports = {
BlockChain: BlockChain
};
因此,在 test.js 中,您应该使用导入类
const { BlockChain } = require('./blockchain.js');
关于javascript - 类实例的未定义返回 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52387947/