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

 更新时间:2018年06月01日 10:36:37   作者:Mcya  
这篇文章主要介绍了JS引用传递与值传递的区别与用法,结合实例形式较为详细的对比分析了javascript引用传递与值传递的原理、区别、使用方法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了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面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

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

相关文章

  • Javascript遍历Html Table示例(包括内容和属性值)

    Javascript遍历Html Table示例(包括内容和属性值)

    这篇文章主要介绍了Javascript如何遍历Html Table(包括内容和属性值),需要的朋友可以参考下
    2014-07-07
  • JavaScript 双位非运算(~~ 操作符)使用场景实例探索

    JavaScript 双位非运算(~~ 操作符)使用场景实例探索

    本文为大家介绍JavaScript中双位非运算 ~~, ~~ 操作符是一个强大且经常被忽视的特性,它提供了一种快速、简洁的方式来处理数字和执行类型转换,通常可以被用于数学计算和类型转换,我们先了解一下 ~~ 的基本概念和它的一些应用场景
    2024-01-01
  • webpack4 处理CSS的方法示例

    webpack4 处理CSS的方法示例

    这篇文章主要介绍了webpack4 处理CSS的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 微信小程序实现图片上传功能的思路与源码

    微信小程序实现图片上传功能的思路与源码

    我们日常开发中经常需要用到图片上传功能,这篇文章主要给大家介绍了关于微信小程序实现图片上传功能的思路与源码的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 如何使用uniapp开发微信小程序获取当前位置详解

    如何使用uniapp开发微信小程序获取当前位置详解

    uni-app小程序项目无法直接获取到地理位置,只能通过获取到的经纬度,调用第三方地图Api获取,下面这篇文章主要给大家介绍了关于如何使用uniapp开发微信小程序获取当前位置的相关资料,需要的朋友可以参考下
    2022-10-10
  • Web表单提交之disabled问题js解决方法

    Web表单提交之disabled问题js解决方法

    这篇文章主要介绍了Web表单提交之disabled问题js解决方法,分析了通过js解决保存值也能保留用户不能输入的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • js模糊查询实例分享

    js模糊查询实例分享

    本文主要分享了js模糊查询的实现代码,没有接触到后台数据的知识,只是查询当前表格中每一行所包含的关键字。具有一定的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • 使用Ajax与服务器(JSON)通信实例

    使用Ajax与服务器(JSON)通信实例

    本篇文章主要介绍了使用Ajax与服务器(JSON)通信方法,Ajax提供了两类服务器通信手段:同步通信和异步通信。有需要的可以了解一下。
    2016-11-11
  • element-ui 通过按钮式触发日期选择器

    element-ui 通过按钮式触发日期选择器

    ElementUI是Vue.js的一套组件库,其日期时间选择器默认是通过点击输入框来触发,本文介绍了如何自定义触发日期选择器,同时隐藏输入框,通过编写一个自定义组件CustomDatePicker.vue,可以实现点击按钮来触发日期选择器
    2024-10-10
  • JS/Jquery判断对象为空的方法

    JS/Jquery判断对象为空的方法

    本文给大家分享的是JS/Jquery判断对象是不是空对象的方法,十分的简单实用,有需要的小伙伴可以参考下。
    2015-06-06

最新评论