如何检测Number变量的变化?

时间:2019-06-22 10:09:42

标签: javascript

例如,当变量更改时,我想 server: port: 3333 hystrix.command.adminFallbackCommand.execution.isolation.thread.timeoutInMilliseconds: 5000 spring: application: name: service-pms-api-gateway cloud: consul: host: 10.7.16.135 port: 8500 discovery: enabled: true instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} prefer-ip-address: true acl-token: da8089e7-287a-e998-e1dd-d2cc919086ae gateway: discovery: locator: enabled: true routes: # This route rule used to forward request to activity server - id: pms-admin uri: lb://service-pms-auth predicates: - Path=/pms-admin/** filters: - name: Hystrix args: name: adminFallbackCommand fallbackUri: forward:/fallback/pms-admin logging: config: classpath:logback.xml ```yaml 。 JavaScript基本上不提供变量的监视程序。所以我想知道怎么做。

对于对象和数组,我可以使用Proxy,如下所示:

console.log()

但是我不知道该如何处理数字。如何使它们可观察?

1 个答案:

答案 0 :(得分:2)

您无法观察原始值。它们只是价值。您将需要一个对象/函数包装器。一个简单的技巧是设置和获取相同的密钥,而不管您指定的密钥如何,这实际上使对象脱离了对象,感觉就像是使用的原始语言。

const number = new Proxy({ value : 5 }, {
  set: (obj, prop, value, receiver)  => { console.log('value set');  obj.value = value; return true },
  get: (obj, prop) =>  { console.log('value get');  return obj.value}
})

number.foo = 10

console.log(number.bar)