我有一个大小为3的数组。当数组值更改时,我需要动态调用一个函数。任何的想法?
var arr = ["","",""];
arr[0] = 'first value is chagned';
arr[1] = 'second value is chagned';
function arrFunction(){
console.log('Array value changed')
}
预期产量
数组值已更改
数组值已更改
。
我知道我们可以通过直接调用函数来实现这一点,如下所示。作为参考,我提供了这些信息。我不能直接调用如下函数
var arr = ["","",""];
arr[0] = 'first value is chagned';
arrFunction()
arr[1] = 'second value is chagned';
arrFunction()
function arrFunction(){
console.log('Array value changed')
}
如果您的目标支持Proxies
很容易做到:
let observe = (obj, fn) => new Proxy(obj, {
set(obj, key, val) {
obj[key] = val;
fn(obj)
}
});
arr = observe(['', '', ''], arr => {
console.log('arr changed! ', arr)
});
arr[0] = 'first value is chagned';
arr[1] = 'second value is chagned';
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句