JS引用传递与值传递的区别与用法分析


Posted in Javascript onJune 01, 2018

本文实例讲述了JS引用传递与值传递的区别与用法。分享给大家供大家参考,具体如下:

这里详细解释JS值传递和引用传递以及二者的区别。

我们先来解释一下这两个的基本概念吧。

函数调用中,传递是一个数值,我们称为 “值传递”。
函数调用中,传递是对象,一般称为 “引用传递”。

现在这里总体上说明,这二者的本质区别就在于传递的数据类型不一样,值传递传递的是一个值,而引用传递传递的是一个对象。

看一下代码以及代码中的注释。

一、引入

function func(a)
{
  a++;
}
// 因为函数都没有调用,所以找不到 a
console.log(a);
//结果明显是undefined了。
//所以看下面两个例子。

二、值传递

var a = 5;
function func(a)
{
  // 函数中开辟了一个空间 a == 5
  // a==6
  a++;
}
func(5);
// 结果,函数没有改变到 外部 a 的值,所以,结果是 5
console.log(a);
// 函数调用中,传递是一个数值,我们称为 “值传递”
// 特点: 有多个不同的空间,空间都是在栈中的
//    所以 修改函数中的空间,对外部空间是没有影响的

三、引用传递

var a = 5;
function func()
{
  // 开辟函数 的空间
  // 函数中没有 a 的空间
  // 所以,系统会自动向外面搜索
  // 这里是对外部的变量进行修改
  a++;
}
func(5);
// 因为函数中修改了外部的变量 a,所以,值发生改变了,是 6
console.log(a);
// 函数调用中,传递是对象,一般称为 “引用传递”
// 特点: 实在存数据的空间只有一份

详细的说明我都在代码中注释说明了,欢迎指点指点指正。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
简约JS日历控件 实例代码
Jul 12 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
js使用心得分享
Jan 13 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
Feb 25 Javascript
ES6新特性之变量和字符串用法示例
Apr 01 Javascript
Angular2 http jsonp的实例详解
Aug 31 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
Vue实现动态创建和删除数据的方法
Mar 17 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 Javascript
Vue中用props给data赋初始值遇到的问题解决
Nov 27 Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 Javascript
Express之托管静态文件的方法
Jun 01 #Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 #Javascript
详解Angular操作cookies方法
Jun 01 #Javascript
浅谈手写node可读流之流动模式
Jun 01 #Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
Jun 01 #Javascript
基于JS实现带动画效果的流程进度条
Jun 01 #Javascript
说说node中的可读流和可写流的区别
Jun 01 #Javascript
You might like
PHP系统流量分析的程序
2006/10/09 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
JS 自定义带默认值的函数
2011/07/21 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
js滚动条平滑移动示例代码
2016/03/29 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
你真的了解Python的random模块吗?
2017/12/12 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
Python命令行click参数用法解析
2019/12/19 Python
如何基于python操作excel并获取内容
2019/12/24 Python
如何通过python实现人脸识别验证
2020/01/17 Python
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
元旦晚会主持词
2014/03/24 职场文书
爱情寄语大全
2014/04/09 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
教师师德师风整改措施
2014/10/24 职场文书
产品质量保证书范本
2015/02/27 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
python 爬取天气网卫星图片
2021/06/07 Python