前端进阶|第八天 京东笔试题,引用传参赋值无效?

简介: 前端进阶|第八天 京东笔试题,引用传参赋值无效? 每天一个知识点。
       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
website明明是把参数地址传进了changeObjProperty,为什么函数里面对website的值修改,没有生效呢?
问题出在 o = new Object(),这个方法的作用就是将o的地址指向了新的地址,那么对o的操作将与website无关。
为了证实我们的猜想,把代码稍作修改。

 function changeObjProperty(o) {
            o.siteUrl = "http://www.baidu.com"
            o.name="百度"
            o = new Object()
            o.siteUrl = "http://www.google.com"
            o.name="谷歌"
        }
        let webSite = new Object();
        webSite.siteUrl="http://www.jd.com"
        webSite.name="京东"
        changeObjProperty(webSite);
        console.log(webSite.siteUrl);
        console.log(webSite.name);

091401

我们可以看到,在o重新赋值之前,对参数的修改是生效的,这也就证明,这个第一次未生效并非是指传递造成的。而在o被重新初始化之后,地址已经指向新的对象,修改并不会返回。

所以注意一点,js中new Object会重新生成对象,而不会覆盖,对新对象的操作将与原对象无关。

目录
相关文章
|
6月前
|
前端开发 测试技术
【前端验证】记录将发包量作为传参以加速debug的环境优化记录
【前端验证】记录将发包量作为传参以加速debug的环境优化记录
|
26天前
|
前端开发 JavaScript
前端Webpack5高级进阶课程
本套视频教程主要内容包含React/Vue最新版本脚手架分析、基于Webpack5编写自己的loader和plugin等,让你开发时选择更多样,最后,用不到一百行的代码实现Webpack打包。通过本套视频教程的学习,可以帮你彻底打通Webpack的任督二脉,技术水平更上一层楼,在开发项目的道路上畅通无阻
13 3
前端Webpack5高级进阶课程
|
6月前
|
JSON JavaScript 前端开发
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(四)完结撒花✿✿ヽ(°▽°)ノ✿
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(四)完结撒花✿✿ヽ(°▽°)ノ✿
531 0
|
6月前
|
JavaScript 前端开发 API
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
516 1
|
6月前
|
JavaScript 前端开发 API
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(二)
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(二)
470 0
|
2月前
|
Web App开发 前端开发 容器
前端秘法进阶----css中那些不能说的秘密
前端秘法进阶----css中那些不能说的秘密
|
3月前
|
移动开发 前端开发 JavaScript
web前端之ES6的实用深度解构赋值方法、复杂的解构赋值
web前端之ES6的实用深度解构赋值方法、复杂的解构赋值
29 1
|
3月前
|
前端开发 小程序 JavaScript
2022前端面试笔试题及答案
2022前端面试笔试题及答案
|
3月前
|
缓存 JavaScript 前端开发
「后端小伙伴来学前端了」Vue-Router 路由各种跳转、传参、小知识
「后端小伙伴来学前端了」Vue-Router 路由各种跳转、传参、小知识
47 0
|
4月前
|
前端开发 API
[前端学习]ES6进阶学习
[前端学习]ES6进阶学习
28 1