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

关于 js 的一个奇怪的问题

  •  
  •   Guidoo · Dec 9, 2022 · 3222 views
    This topic created in 1275 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   ·   2928 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 13:43 · PVG 21:43 · LAX 06:43 · JFK 09:43
    ♥ Do have faith in what you're doing.