Javascript 在一个以varName为参数的函数中,使用[varName]=某个东西来更改变量有多安全?
这个函数还没有完成,但我想知道有一个这样改变变量的函数有多“安全” 我使用的是一个具有实用功能的角度服务,Javascript 在一个以varName为参数的函数中,使用[varName]=某个东西来更改变量有多安全?,javascript,angular,typescript,Javascript,Angular,Typescript,这个函数还没有完成,但我想知道有一个这样改变变量的函数有多“安全” 我使用的是一个具有实用功能的角度服务,context是this来自我调用函数的组件,其余的应该是自解释的 changeValueOverTime(context: any, varToChange: string, amount: number, intevalTime: number) { const inteval = setInterval(() => { context[varToChange]
context
是this
来自我调用函数的组件,其余的应该是自解释的
changeValueOverTime(context: any, varToChange: string, amount: number, intevalTime: number) {
const inteval = setInterval(() => {
context[varToChange] = 200;
}, intevalTime);
}
编辑:
完整的函数可以在这里找到:这真是个坏主意!每次使用RXJS interval和map发出新的值,只需将此可观察值订阅到组件中即可
changeValueOverTime(intevalTime: number) {
return interval(intevalTime).pipe(map(() => 200));
}
在您的组件中:
changeValueOverTime().subscribe(newValue => this.varToChange = newValue);
这真是个坏主意!每次使用RXJS interval和map发出新的值,只需将此可观察值订阅到组件中即可
changeValueOverTime(intevalTime: number) {
return interval(intevalTime).pipe(map(() => 200));
}
在您的组件中:
changeValueOverTime().subscribe(newValue => this.varToChange = newValue);
这根本没什么问题(除了模糊的副作用)。另一种选择是什么?在组件中创建一个函数来改变它。anyVariable直接在函数中我改变变量,比如context[varName]=something,我担心的是,如果你调用函数,你可以改变context中的任何变量,我想知道使用这样的函数来改变变量是否不是一个好的做法。好吧,这就是我的意思,除了模糊的副作用。晦涩=不容易看到/发现,副作用=改变该功能外部的东西。使用这两个形容词中的任何一个都不被视为一种好的做法。被描述为两者都是可能真的,真的不被视为一个好的做法?但是,这取决于你是否需要这样做。如果此服务的执行和使用在使用此服务的组件中有很好的文档记录,那么可能可以一次性(而不是常规)执行此服务。这真是个坏主意!每次使用RXJS interval和map发出新的值,只需将此可观测值订阅到组件中即可。这一点毫无问题(除了模糊的副作用)。另一种选择是什么?在组件中创建一个函数来改变它。anyVariable直接在函数中我改变变量,比如context[varName]=something,我担心的是,如果你调用函数,你可以改变context中的任何变量,我想知道使用这样的函数来改变变量是否不是一个好的做法。好吧,这就是我的意思,除了模糊的副作用。晦涩=不容易看到/发现,副作用=改变该功能外部的东西。使用这两个形容词中的任何一个都不被视为一种好的做法。被描述为两者都是可能真的,真的不被视为一个好的做法?但是,这取决于你是否需要这样做。如果此服务的执行和使用在使用此服务的组件中有很好的文档记录,那么可能可以一次性(而不是常规)执行此服务。这真是个坏主意!每次使用RXJS interval和map发出新的值,只需将此可观察值订阅到组件中即可。