gpt4 book ai didi

javascript - 在 Javascript 中使用函数作为类似 C# 的属性来访问私有(private)数据是一个好习惯吗?

转载 作者:行者123 更新时间:2023-12-01 01:13:28 25 4
gpt4 key购买 nike

例如,考虑具有数据变量 a 和 b 的类 Obj,以及它们的访问器 A() 和 B():

class Obj 
{
constructor ()
{
this.a = 5
this.b = 9
}

A () { return a }
SetA ( value ) { this.a = value }
B () { return b }
}

这个想法是将接口(interface)与实现分开,使代码对于 future 的变化更加灵活。因此,如果您更改变量 a 和 b 的某些内容,则不必更改使用它们的所有代码。

但我担心它可能会产生大量开销,因为它不会像其他语言那样进行优化。另外,函数是 Javascript 中的一等公民,因此调用它们很复杂。

像这样访问数据是个好主意吗?或者应该避免这种情况以及如何避免?

最佳答案

Is it a good idea to access data like this?

我没有看到任何好处,它只是增加了很多样板。

如果您稍后需要某种 getter/setter,您可以透明地添加它,而不会破坏任何内容。

{ example: "test", }
// can be turned into
{
get example() { /*..*/ },
set example(v) { /*...*/ },
}

据我所知,这同样适用于 C#:

 string example
// can be turned to
string example {
get {
//...
}
}

所以我不确定您在谈论哪种“最佳实践”。

... if you change something about variables a and b, you don't have to change all the code that uses them.

但是……如果这些属性的变化影响了它们的功能,那么使用它的代码也必须改变,使用 getter/setter 来“让它仍然以某种方式工作”并不是一个长期的解决方案。

关于javascript - 在 Javascript 中使用函数作为类似 C# 的属性来访问私有(private)数据是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54971472/

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