写在前面
此系列来源于开源项目:前端 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'}
网友评论