关于 js 的一个奇怪的问题 - V2EX
Guidoo

关于 js 的一个奇怪的问题

  •  
  •   Guidoo Dec 9, 2022 3155 views
    This topic created in 1251 days ago, the information mentioned may be changed or developed.

    为什么'minderAll'里面有一个对象叫 'minder',但是 log 出来的是{}

    19 replies    2022-12-10 16:29:54 +08:00
    ZLY201
        1
    ZLY201  
       Dec 9, 2022
    为了提高浏览器性能,console.log 是异步的,试试 console.log(JSON.stringify(obj.minder));
    NerbraskaGuy
        2
    NerbraskaGuy  
       Dec 9, 2022
    打印对象的只是对象的引用,像楼上说的那样先字符串化
    Guidoo
        3
    Guidoo  
    OP
       Dec 9, 2022
    @zilongyao1366 这样也是{}
    ochatokori
        4
    ochatokori  
       Dec 9, 2022 via Android
    打印出来的{}就是那个 Minder 对象啊,可以理解成是 Minder 类的实例,console 给你显示出来类名而已
    Guidoo
        5
    Guidoo  
    OP
       Dec 9, 2022
    @ochatokori 那我怎么获取到 minder 对象的属性呢
    wangtian2020
        6
    wangtian2020  
       Dec 9, 2022
    你控制台看到的第一条输出 minderAll 里的 minder
    和第二条输出不是同一个对象
    在你打印代码之后,你看到输出之前,改变了引用
    你可以试着在 return 之前加一个 debugger ,这样子可以停下代码执行

    我猜的
    hidemyself
        7
    hidemyself  
       Dec 9, 2022
    不能相信 console,你想看的话得 debug
    Guidoo
        8
    Guidoo  
    OP
       Dec 9, 2022
    @wangtian2020 确实不是一个对象 我找找原因
    longjiahui
        9
    longjiahui  
       Dec 9, 2022
    @Guidoo 是不是在原型链上啊、所以就看不到了。
    longjiahui
        10
    longjiahui  
       Dec 9, 2022
    顺着原型链一直点开?
    dcsuibian
        11
    dcsuibian  
       Dec 9, 2022
    你这个 Minder 类有啥字段啊?

    看看 PropertyDescriptor ,是不是 enumable 属性为 false 的?
    acthtml
        12
    acthtml  
       Dec 9, 2022
    {} 表示此实例没有属性方法...
    acthtml
        13
    acthtml  
       Dec 9, 2022
    class Minder {}
    let a = new Minder();
    console.log(a);

    // Minder {}
    AV1
        14
    AV1  
       Dec 9, 2022
    用断点调试吧
    IvanLi127
        15
    IvanLi127  
       Dec 9, 2022
    Vue 开发者经典疑惑之一,我见过太多太多。。。。
    ochatokori
        16
    ochatokori  
       Dec 9, 2022 via Android
    @Guidoo #5 如果原型链只有一层 minderAll.minder.__proto__
    lmshl
        17
    lmshl  
       Dec 9, 2022
    我举个简单例子,题主能不能理解到就看悟性了
    (提示:console.log 在浏览器中被魔改增强过,不只是简单的输出字符串
    likesoda
        18
    likesoda  
       Dec 10, 2022 via iPhone
    console.log 打印的是对象快照,当展开对象时会重新获取对象
    Guidoo
        19
    Guidoo  
    OP
       Dec 10, 2022
    @lmshl 明白了
    About     Help     Advertise     Blog     API     FAQ     Solana     5837 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 108ms UTC 01:50 PVG 09:50 LAX 18:50 JFK 21:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86