3-8编程

3-8编程

要合并成一个对象不就会用到第三个变量了吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
怎么都被占用了呢 2017-11-22 10:21:44

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<script type="text/javascript">

var a = {name: 'xm'}, b = [4];

a = [a, b];

b = a[0];

a = a[1];

console.log(a);

console.log(b);

</script>

</body>

</html>

http://img1.sycdn.imooc.com//climg/5a14dee80001caad03150093.jpg这是测试结果,有些浏览器解析数组和对象的机制不同,多刷新页面几次,再看控制台

慕斯卡1319381 2017-11-21 23:40:18

这个方法输出的也根本不是交换的值。而是4,【object,object】

怎么都被占用了呢 2017-11-20 14:46:33

你可以亲自测试一下上边同学的代码,a和b的值是交换了的。还有这种方式可参考:

var a = {name: 'xm'}, b = [4];

a = [a, b];

b = a[0];

a = a[1];


lucien1085810633 2017-09-15 13:11:35
var a = {name: 'xm'}, b = [4];
b.push(a);      //在b数组中加入a对象    [4,{name: 'xm'}]
a=b;           //a在同一个栈中指向堆里面的同一个对象;
b=b.pop();    //b等于对象中删除的最后一个元素 也就是[1];因为指向的是同一个对象,所以b作修改,a也修改了;
console.log(a)//自然a就是等于[4]了


  • 不是要交换a和b的值吗,那这样a=[4],b=[4],不是没交换值吗?
    2017-11-19 17:32:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

进击JavaScript核心 2018
  • 参与学习       466    人
  • 提交作业       74    份
  • 解答问题       635    个

JavaScript不仅能实现静态页面到动态特效的转变,还能完成数据的动态交互,但是关于js到底功能有多强大,大家还是有所期待的,本路径将带你深入到js中,一一揭开JavaScript的神秘面纱。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师