[英]Declaring a variable inside a ES6 class.
我想了解如何在類中聲明變量?
例如,直到現在,我一直在宣稱這樣
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.
)來使用它們。
是的,我認為TJ Crowder非常好。 但是我想添加以下內容:
對象和類的任務是提供某些實體的抽象 。 在ReactJS的情況下,這些對象是反應組件。 將與某個組件相關的所有數據放在對象中的優點提供了以下優點:
還要記住:
課程有:
此外,重要的是要知道JS使用原型繼承 。 class
關鍵字只是頂級原型繼承的語法糖構建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.