gpt4 book ai didi

javascript - 实例变量与模块范围变量

转载 作者:行者123 更新时间:2023-11-30 20:19:16 26 4
gpt4 key购买 nike

以下组件将产生相同的结果:

const currYear = Date.now().getFullYear();

class App extends React.Component {
render() {
return <MyComponent year={currYear} />;
}
};

class App extends React.Component {
constructor() {
super();
this.currYear = Date.now().getFullYear();
}

render() {
return <MyComponent year={this.currYear} />;
}
};

假设变量永远不会改变。

他们的应用可以被认为是等效的吗?
如果不是,在某些情况下人们应该更喜欢一种方法而不是另一种方法?

好奇很久了,一直没有找到可靠的答案。

最佳答案

在这种特殊情况下,它们是等价的,主要是因为 App 应该被实例化一次。

对于多次实例化的组件而言,情况并非如此。如果用户更改系统时间或新年到来,this.currYear 也会在未来的组件实例中更改。

使用常量作为类字段提供了更大的灵 active 。可能需要在测试期间更改它们,这可能会提高可测试性。并且可以在需要时在子类中更改。即使您没有将类设计为可扩展的,其他开发人员也可能从可扩展性中受益:

class BackToTheFutureApp extends App {
currYear = 1955;
}

关于javascript - 实例变量与模块范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629893/

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