gpt4 book ai didi

javascript - 在 ES6 类中声明一个变量。

转载 作者:行者123 更新时间:2023-11-30 11:14:21 24 4
gpt4 key购买 nike

我想了解如何在类中声明变量?

例如,到现在为止,我一直是这样声明的

let displaySearchCrypto = []
let updateCoinData = [];

class cryptoTicker extends PureComponent {

并在我的类里面使用它(我的意思是在我的类里面像这样)

componentDidUpdate() {
updateCoinData = [...this.props.cryptoLoaded];

if (updateCoinData[i]["short"] == tradeMsg.coin ) {


//Search for changed Crypto Value
updateCoinData[i]["long"] = tradeMsg["message"]["msg"]["long"]
updateCoinData["short"] = tradeMsg["message"]["msg"]["short"]

 search = () => {
displaySearchCrypto.push({
no: {i},
key: this.props.cryptoLoaded[i]["long"],
short: this.props.cryptoLoaded[i]["short"],
long: this.props.cryptoLoaded[i]["long"],
price: this.props.cryptoLoaded[i]["price"],
mktcap: this.props.cryptoLoaded[i]["mktcap"],
perc: this.props.cryptoLoaded[i]["perc"],
vwapData: this.props.cryptoLoaded[i]["vwapData"]
})

但是,由于我打算只在单个类中使用,我认为我不应该在全局范围类中声明。所以我的问题是,如何在类中声明变量?

最佳答案

您不在类中声明变量。您在构造函数或方法中声明变量,或者创建实例的属性(或类本身,“静态”属性,它们是构造函数的属性)。

如果您正在使用模块,您的第一个代码块将不会创建全局变量,它会创建模块全局变量(仅在该模块中编写代码的全局变量)。如果该模块仅包含该类,并且您的意思是变量和它们引用的数组由该类的所有实例共享,您可以继续这样做。

但我怀疑您希望它们成为实例的属性,而不是在实例之间共享,在这种情况下,您可以在构造函数中定义这些属性:

constructor(props) {
super(props);
this.displaySearchCrypto = [];
this.updateCoinData = [...this.props.cryptoLoaded];
}

然后通过引用实例来使用它们(通常通过 this.)。

关于javascript - 在 ES6 类中声明一个变量。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52244567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com