推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
Guidoo

关于 js 的一个奇怪的问题

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

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

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

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

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

    // Minder {}
    AV1
    AV1
    Dec 9, 2022
    14
    用断点调试吧
    IvanLi127
    IvanLi127
    Dec 9, 2022
    15
    Vue 开发者经典疑惑之一,我见过太多太多。。。。
    ochatokori
    ochatokori
    Dec 9, 2022 via Android
    16
    @Guidoo #5 如果原型链只有一层 minderAll.minder.__proto__
    lmshl
    lmshl
    Dec 9, 2022
    17
    我举个简单例子,题主能不能理解到就看悟性了😏
    (提示:console.log 在浏览器中被魔改增强过,不只是简单的输出字符串
    likesoda
    likesoda
    Dec 10, 2022 via iPhone
    18
    console.log 打印的是对象快照,当展开对象时会重新获取对象
    Guidoo
    Guidoo
    OP
    Dec 10, 2022
    19
    @lmshl 明白了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5177 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 06:40 · PVG 14:40 · LAX 22:40 · JFK 01:40
    ♥ Do have faith in what you're doing.