前端100问

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

2021-03-04  本文已影响0人  alanwhy

写在前面

此系列来源于开源项目:前端 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'}
上一篇 下一篇

猜你喜欢

热点阅读