首页 > 解决方案 > 如果 javascript 对象是通过引用传递的,为什么在返回对象后对回调内部的对象所做的更改不会反映在外部?

问题描述

方法

getDurationogAudio(url) {
  var dur = new Object();
  soundFile = new Sound(url, '', (error) => {

    let dd = new Date(parseInt(soundFile.getDuration()) * 1000).toISOString().substr(11, 8)
    dur.dur = dd
    this.setState({})
    return parseInt(soundFile.getDuration())
  })
  dur.ab = "ab"
  return dur
}

模板

  <Text>{JSON.stringify( this.getDurationogAudio(item.attachment))}</Text>

在这里,我正在创建一个包含文件持续时间的对象。持续时间在回调中设置。即使回调成功执行并且设置了dur字段,在模板中显示时仍然不可见,但是在模板dur.ab中可以看到静态设置在回调之外的字段。为什么我分配给dur对象的字段返回后是不是反映在外面?如果它是通过引用传递的,那么从方法返回后对对象所做的更改也应该反映在外部对吗?我错过了什么

标签: javascriptreact-native

解决方案


推荐阅读