您现在的位置是:课程教程文章
javascript复杂类型如何传参
2023-12-14 20:12课程教程文章 人已围观
Web前端权威入门【2020新版】/JavaScript/JS项
Web前端权威入门【2020新版】/JavaScript/JS项小伙伴们, 免费领取高清精品视频、笔记、源码 ,加 小7老师QQ330496536 还可加...【前端】JavaScript高级
【前端】JavaScript高级本课程是纯前端课程,面向前端的JavaScript提高篇。 学习本课程前,你需要有一...Web前端开发,JavaScript网页前端基础入门至
Web前端开发,JavaScript网页前端基础入门至...JavaScript基础入门到精通(学习版)
JavaScript基础入门到精通(学习版)【下面二维码是最近1-2年原创毕设作品】 直接扫描二维码,查看毕业设计作品...
说明
1、在将实参传递给形参的过程中,复杂的数据类型传递给形参的是实参的地址,而非对象实例。
2、函数的形参也可以看作是一个变量。
当我们将引用类型的变量传递给形参时,我们实际上将变量保存在栈空间中的堆地址复制给形参。形参和实参实际上保存在同一个堆地址,所以操作的是同一个对象。
实例
<script> functionPerson(name){ this.name=name; } functionfun1(x){ //8.由于形参x指向地址p,因此输出的仍然是地址p所对应的对象实例{newPerson('刘德华');name='刘德华'} //9.第二个输出:'刘德华' console.log(x.name); //10.对x.name进行了重新的赋值,此时的对象实例改为{newPerson('刘德华');name='张学友'} x.name='张学友'; //11.第三个输出:'张学友' console.log('2'+x.name); } //1.定义一个复杂数据类型 //2.复杂数据类型变量p在栈中存储地址p,变量p指向地址p //3.而真正的对象实例{newPerson('刘德华');name='刘德华'}存放在堆中 //4.变量p指向栈中的地址p,地址p指向堆中的对象实例{newPerson('刘德华');name='刘德华'} varp=newPerson('刘德华'); //5.第一个输出:刘德华 console.log(p.name); //6.将变量p传递给形参x,即将地址p传递给形参x //7.然后变量p和形参x都指向了同一个地址,即地址p fun1(p); //12.此时p.name的对象实例为{newPerson('刘德华');name='张学友'} //13.第四个输出:'张学友' console.log(p.name); </script>
以上就是javascript复杂类型的传参方法,希望对大家有所帮助。更多Javascript学习指路:Javascript
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。
课程教程:javascript复杂类型如何传参下一篇:没有了