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 相关文章推荐
json 入门基础教程 推荐
Oct 31 Javascript
ExtJs纵坐标值重复问题的解决方法
Feb 27 Javascript
js只执行1次的函数示例
Jul 20 Javascript
js获取浏览器的各种属性
Apr 27 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
Dec 05 Javascript
Angular路由ui-router配置详解
Aug 01 Javascript
vue中img src 动态加载本地json的图片路径写法
Apr 25 Javascript
Vue项目环境搭建详细总结
Sep 26 Javascript
countup.js实现数字动态叠加效果
Oct 17 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
Apr 03 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
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程序的php代码
2008/04/07 PHP
PHP中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
phpMyAdmin 安装及问题总结
2009/05/28 PHP
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python__new__内置静态方法使用解析
2020/01/07 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
python实现简单井字棋游戏
2020/03/04 Python
python软件都是免费的吗
2020/06/18 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
会计毕业生自荐信
2013/11/21 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
会计求职信怎么写
2015/03/20 职场文书
机器人总动员观后感
2015/06/09 职场文书
交通事故协议书范本
2016/03/19 职场文书
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL
Vue监视数据的原理详解
2022/02/24 Vue.js
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
Redis唯一ID生成器的实现
2022/07/07 Redis