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 相关文章推荐
datePicker——日期选择控件(with jquery)
Feb 20 Javascript
js日期对象兼容性的处理方法
Jan 28 Javascript
js身份证判断方法支持15位和18位
Mar 18 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
Oct 27 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
vue脚手架搭建过程图解
Jun 06 Javascript
jQuery实现表单动态添加与删除数据操作示例
Jul 03 jQuery
详解vue填坑之解决部分浏览器不支持pushState方法
Jul 12 Javascript
详解JavaScript的变量
Apr 04 Javascript
微信小程序实现图片压缩
Dec 03 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中{}大括号是什么意思
2013/12/01 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
jquery ajax 登录验证实现代码
2009/09/23 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python读大数据txt
2016/03/28 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
挂牌仪式策划方案
2014/05/18 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
三严三实对照检查材料
2014/08/25 职场文书
四风问题对照检查材料
2014/09/22 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
《所见》教学反思
2016/02/23 职场文书
资产移交协议书
2016/03/24 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS