美文网首页前端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