美文网首页
JavaScript对象属性只能是字符串的问题

JavaScript对象属性只能是字符串的问题

作者: 卓三阳 | 来源:发表于2018-05-25 22:55 被阅读99次
    认识这个问题起源于一个编程问题

    一个数组[1,2,3,'1','2',1]去重以后是[1,2,3,'1','2'],写出数组去重函数。
    当时我的第一感觉是使用对象key的唯一性来解决这个问题,不过我观察完元素后心里就很犯嘀咕,1和‘1’的key会不会一样。
    经过测试果然是一样的。


    res.png

    有一道类似的问题

    var a={},
        b={key:'b'},
        c={key:'c'};
    
    a[b]=123;
    a[c]=456;
    
    console.log(a[b] === 456);//true
    

    这是为什么呢?


    answer.png

    意思是说b和c作为了对象的a的属性,但对象的属性必须是string类型,所以编译器就会使用''[object Object]''来代替他们。
    其实a就下面这样


    a.png

    拓展


    extend.png

    参考
    Why a[c] override a[b]? [duplicate]

    相关文章

      网友评论

          本文标题:JavaScript对象属性只能是字符串的问题

          本文链接:https://www.haomeiwen.com/subject/mfhpjftx.html