很普通的一段JS代码,但是却出现了很诡异的问题

代码如下,anchor是一个map结构,根据id获取anchor中的一个元素,打印anchor.get(id)没有问题,获取anchor.get(id)中存在的属性却是空的,这让我很不明白


    function sendLiveOffer(id) {

        console.log(id)

        console.log(anchor.get(id))

        console.log(anchor.get(id).localDescription)

        let sdp = anchor.get(id).localDescription

        let offer = {

            name: 'anchor',

            target: id,

            type: "video-offer",

            sdp: sdp

        }

        console.log('offer 已发出')

    }

https://img4.mukewang.com/5c99dbc300016f9808000583.jpg

繁星点点滴滴
浏览 418回答 4
4回答

喵喵时光机

如果你了解对象是引用类型你就不会疑惑了。给你段代码参考,还不明白就没辙了:var o = {a:1, b:{b1:"", b2:""}, c:"testing"};setTimeout(()=>{o.b = {b1:"hello", b2:"world"}}, 100);console.log(o);console.log(o.b);

鸿蒙传说

应该是异步的问题吧,再anchor.get(id).localDescription之后你修改了值。

慕容3067478

属性是空的? 还是报错? 会不会是字符串?需要转一下你typeof一下

眼眸繁星

 let info = anchor.get(id); let desc = info.localDescription;导一下试试?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript