美文网首页前端100问
【前端100问】Q98:写出如下代码的打印结果

【前端100问】Q98:写出如下代码的打印结果

作者: alanwhy | 来源:发表于2021-03-04 16:09 被阅读0次

    写在前面

    此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我
    为了备战 2021 春招
    每天一题,督促自己
    从多方面多角度总结答案,丰富知识
    写出如下代码的打印结果
    简书整合地址:前端 100 问

    正文回答

    题目
    function changeObjProperty(o) {
      o.siteUrl = "http://www.baidu.com";
      o = new Object();
      o.siteUrl = "http://www.google.com";
    }
    let webSite = new Object();
    changeObjProperty(webSite);
    console.log(webSite.siteUrl);
    
    回答

    函数的形参是值的传递,传递对象的话,函数接受的是这个对象的指针。

    所以答案是 http://www.baidu.com

    // 这里把o改成a
    // webSite引用地址的值copy给a了
    function changeObjProperty(a) {
      // 改变对应地址内的对象属性值
      a.siteUrl = "http://www.baidu.com";
      // 变量a指向新的地址 以后的变动和旧地址无关
      a = new Object();
      a.siteUrl = "http://www.google.com";
      a.name = 456;
    }
    var webSite = new Object();
    webSite.name = "123";
    changeObjProperty(webSite);
    console.log(webSite); // {name: 123, siteUrl: 'http://www.baidu.com'}
    

    相关文章

      网友评论

        本文标题:【前端100问】Q98:写出如下代码的打印结果

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