所以我制作了一个节点应用程序,它在类构造函数中有一个条件语句,如果这个那么变量等于那个,那么其他变量等于那个。然而,当我初始化该变量时,我想根据带有“this”语法的布尔语句进行更改,这在控制台中给了我一个错误。为什么会发生这种情况?如果在JS中无法使用“this”语法多次初始化该变量,我如何初始化它?
更新:
我被给予了JavaScript中的“this”是如何工作的?看看这是否有帮助,这与我的要求无关。更具体地说,我为什么能这样做var检验;if(true){var测试=1}否则{var检测=0}
而不是这个if(true){this.test=1}其他{this.test=0}
并且能够在我的应用程序中使用变量。
代码:
班级钱包{构造函数(机密){//添加了机密参数this.secret=秘密;this.balance=启动平衡;if(this.secret===空||未定义){this.keyPair=ec.genKeyPair();this.publicKey=this.keyPair.getPublic().encode('hex');}其他的{this.keyPair=ec.keyFromPrivate(this.secret);this.storeKeys=this.keyPair.toString('hex');//fs.writeFileSync('../secret.json');this.publicKey=this.keyPair.getPublic().encode('hex');}}
控制台错误:
/home/main/public_html/Cypher-Network/node_modules/bn.js/lib/bn.js:622var w=this.words[此长度-1];^TypeError:无法读取null的属性“-1”在BN.bitLength(/home/main/public_html/Cypher Network/node_modules/BN.js/lib/BN.js:622:23)在Point_has Doubles(/home/main/public_html/Cypher-Network/node_modules/eclimitary/lib/elimitary/curve/base.js:332:48)位于Point.mul(/home/main/public_html/Cypher-Network/node_modules/eclimitary/lib/elimitary/curve/short.js:426:17)在KeyPair.getPublic(/home/main/public_html/Cypher-Network/node_modules/eclimitary/lib/eclimit/ec/key.js:61:26)在新钱包(/home/main/public_html/Cypher-Network/src/Wallet/index.js:26:39)位于Object<匿名>(/home/main/public_html/Cypher-Network/src/blockchain/dataBlock.js:4:16)位于模块_编译(内部/modules/cjs/loader.js:1158:30)位于Object。模块_扩展。。js(内部/modules/cjs/loader.js:1178:10)在Module.load(internal/modules/cjs/loader.js:1002:32)位于函数。模块_加载(内部/modules/cjs/loader.js:901:14)