关于js函数参数是否会实时更新的问题

遇到一个小问题

export function test001(value, callback) {
  setTimeout(() => {
    if (value == undefined) {
      test001(value, callback)
    } else {
      callback()
    }
  }, 100)
}


// 调用处
// 要测试的变量
param01
test001(param01, () => {
  console.log('值不为空啦')
})

这个变量param01,本来会在一会就有值的,但是这个 test001一直不返回,经查后发现:

当param01传入test001方法后,在方法内部就固定了,可以理解为在内存中开辟了另一块,将值存在里面,所以并不会一直更新。

改为如下即可(即值使用一个方法返回值即可)

export function test001(execFunc, callback) {
  setTimeout(() => {
    if (execFunc() == undefined) {
      test001(execFunc, callback)
    } else {
      callback()
    }
  }, 100)
}

// 调用处
test001(() => {
  return param01; // param01是一个变量
}, () => {
  console.log('有值啦')
})

你可能感兴趣的:(javascript,前端,开发语言)