javascript - 如果 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对象的字段返回后是不是反映在外面?如果它是通过引用传递的,那么从方法返回后对对象所做的更改也应该反映在外部对吗?我错过了什么
解决方案
推荐阅读
- r - 如何在 dplyr 包中使用权重
- php - 在再次设置之前取消设置会话变量会导致使用时出现“未定义的索引”
- magento - Magento 2 将自定义属性附加到产品名称
- c++ - c++单例实现Meyer's vs call_once
- python - 将 Gnome Builder 与 Python 一起使用
- node.js - 投入生产后,Angular 为 api 提供了错误的 URL
- php - Laravel - 捕获 404
- html - Bootstrap 共享 url 容器
- javascript - 如何检查一个对象是否至少有一个真值
- reactjs - 使用 switch case 渲染可重用的组件数据