美文网首页
JavaScript参数传递

JavaScript参数传递

作者: MajorDong | 来源:发表于2019-12-05 17:57 被阅读0次

《javascript高级程序设计》4.1.3:所有函数的参数都是按值传递的

就是说把函数外部的值赋值给函数内部的参数,就和把值从一个变量复制到另一个变量一样。

按值传递(基本类型)

var value = 1;
function foo(v) {
    v = 2;
    console.log(v); //2
}
foo(value);
console.log(value) // 1

可以理解为,给函数的型参赋值(函数型参此时已声明但为赋值),由于基本类型的值是存储在栈内存中(stack)。将变量value的值传递给型参v,但value自己的值不改变。

按值传递(引用类型)

var obj = {
    value: 1
};
function foo(o) {
    o.value = 2;
    console.log(o.value); //2
}
foo(obj);
console.log(obj.value) // 2

变量obj被声明在栈内存中,存着引用类型在堆内存(heap)中的地址,将引用类型的地址传递给型参o。函数foo可以通过这个地址访问到堆内存中的引用类型,并进行修改。

var obj = {
    value: 1
};
function foo(o) {
    o = 2;
    console.log(o); //2
}
foo(obj);
console.log(obj.value) // 1

obj存在栈内存中的地址被传递给型参o,型参后被赋值o=2,就和obj没有任何关系了。

总结:

重的来说,JavaScript中所有函数都是按值传参,只是分为传递的是

  1. 基本类型的值
  2. 引用类型的引用地址

相关文章

  • 值传递or引用传递

    javascript都是按值传递 javascript的函数的参数传递,传递的都是值,参数是 Object 类型的...

  • 数据结构与算法 javascript

    基础概念 javascript中,函数的参数传递方式都是按值传递,没有按引用传递的参数。但是javascript中...

  • JavaScript 传递参数

    ECMAScript 中所有函数的参数都是按值传递的,言下之意就是说,参数不会按引用传 递,虽然变量有基本类型和引...

  • JavaScript参数传递

    《javascript高级程序设计》4.1.3:所有函数的参数都是按值传递的就是说把函数外部的值赋值给函数内部的参...

  • 2019-06-26

    深入理解JavaScript 参数按值传递 定义:ECMAScript中所有函数的参数都是按值传递的。 值传递:函...

  • JavaScript函数的参数传递

    JavaScript函数的参数传递取决于参数的类型: 若参数为基本类型,那么按值传递 若参数为引用类型,那么按共享...

  • [JS开发者应懂的33个概念]3. 值类型和引用类型

    JavaScript 之 函数参数的传递 按值传递 继上篇说的,JavaScript的基本数据类型有7种:null...

  • javascript参数传递方式

    定义 ECMAScript中所有函数的参数都是按值传递的。也就是说,把函数外部的值复制给函数内部的参数,就和把值从...

  • JavaScript的参数传递

    一、前言 ECMA中所有函数的参数都是按照值传递。 二、基本数据类型 在向函数传递基本数据类型的时候,被传递的值会...

  • 表达式和控制体

    原文链接date:20170707 输入参数和输出参数 在javascript中,函数可以传递参数作为输入;Sol...

网友评论

      本文标题:JavaScript参数传递

      本文链接:https://www.haomeiwen.com/subject/uakjgctx.html