码迷,mamicode.com
首页 > 其他好文 > 详细

怎样理解函数参数的传递

时间:2019-10-08 12:48:47      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:第一步   strong   形参   内存地址   false   ons   操作   引用   person   

前言: 基本类型(数值 / 字符串 / 布尔值)和引用类型(对象)作为参数传递给函数时的行为是不一样的.

基本类型传递的是值的地址, 它在函数内部的改变不会影响到原变量. 

引用类型传递的是引用的地址, 它在函数内部的改变实际上是对原变量的改变. 

 

第一步: 下面演示基本类型的值做实参时的情况

function change(bol){
    bol = !bol;
    console.log(bol)
}

var a = true;
change(a); // false
console.log(a); // true;

 

注意: 这里在函数内部改变了形参的值, 但外部的a的值并没有发生改变. 这是基本类型的特征;

 

第二步: 下面演示引用类型的值做实参时的情况

function addName(obj) {
    obj.name = "Lilei";
    console.log(obj.name); // Lilei
}

var person = {};
addName(person); // Lilei
console.log(person.name); // Lilei

 

注意: 这里对象作为实参传递给函数时, 实际传递的是引用, 在函数内部操作的obj指向的内存地址实际上就是person指向的内存地址, 因此其改变会影响obj和person;

 

怎样理解函数参数的传递

标签:第一步   strong   形参   内存地址   false   ons   操作   引用   person   

原文地址:https://www.cnblogs.com/aisowe/p/11634676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!