Javascript 检测变量更改并执行回调的最有效方法

Javascript 检测变量更改并执行回调的最有效方法,javascript,websocket,client-server,Javascript,Websocket,Client Server,我希望在服务器上检测变量的值何时更新,并运行回调,将新值发送到客户端,以便提供实时提要。例如,假设服务器以随机间隔生成一个随机数,但客户机必须意识到一个新的数字一旦生成就立即生成 一个简单的解决方案是定义一个自定义函数,用于设置值,而不是直接使用“=”进行设置: function setValue(val) { a = val; websocket.send(a) } 但这需要返回已经编写的代码,并替换正在更新的变量的所有实例,以使用自定义函数。这是一个乏味且容易出错的过程,但只需执行一次 我

我希望在服务器上检测变量的值何时更新,并运行回调,将新值发送到客户端,以便提供实时提要。例如,假设服务器以随机间隔生成一个随机数,但客户机必须意识到一个新的数字一旦生成就立即生成

一个简单的解决方案是定义一个自定义函数,用于设置值,而不是直接使用“=”进行设置:

function setValue(val) { a = val; websocket.send(a) }
但这需要返回已经编写的代码,并替换正在更新的变量的所有实例,以使用自定义函数。这是一个乏味且容易出错的过程,但只需执行一次

我读到的另一个解决方案是在初始化变量时定义setter,如前所述。 这只需要替换第一次初始化变量的所有位置,但由于它隐藏在后台进行侦听,我担心这会降低可读性,有人可能会忘记每次更新变量时都会触发回调


我不是专业的代码编写者,所以我不确定这些解决方案中的哪一个会被更广泛地接受,或者是否有更好的方法来实现它。也不确定这会对性能造成什么影响,但我猜可以忽略不计。

定义自定义函数。现在就接受重构的痛苦,并保持它的可读性。编码是20%的创建和80%的维护,但当你在做新东西的时候,感觉总是99%的创建和1%的维护

定义自定义函数。现在就接受重构的痛苦,并保持它的可读性。编码是20%的创建和80%的维护,但当你在做新东西的时候,感觉总是99%的创建和1%的维护