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 相关文章推荐
jQuery-Easyui 1.2 实现多层菜单效果的代码
Jan 13 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
详细分析JavaScript变量类型
Jul 08 Javascript
封装属于自己的JS组件
Jan 27 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
May 12 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
Oct 11 Javascript
浅谈JavaScript 代码整洁之道
Oct 23 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
Vue中图片Src使用变量的方法
Oct 30 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 Javascript
关于angular 8.1使用过程中的一些记录
Nov 25 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中基本符号及使用方法
2010/03/23 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
JS表单传值和URL编码转换
2018/03/03 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
学生操行评语大全
2014/04/24 职场文书
营业用房租赁协议书
2014/11/26 职场文书
六年级学生期末评语
2014/12/26 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书