资讯专栏INFORMATION COLUMN

javascript传递参数

kohoh_ / 2205人阅读

摘要:传递参数首先要知道的是在中基本数据类型是按值传递的,引用类型的值是保存在内存中的变量,不允许直接操作对象的内存空间。二者之间是独立的,不相互影响。

JavaScript传递参数 首先要知道的是

1.在js中基本数据类型是按值传递的,引用类型的值是保存在内存中的变量,js不允许直接操作对象的内存空间。

2.在复制变量值中我们可以看到二者的不同。
当复制一个基本类型时,会创建一个当前对象的副本,它拥有为它新分配的空间。二者之间是独立的,不相互影响。
当复制一个引用类型时,我们也是创建看这个值的一个副本,不同的是这个值是一个指针,指向存储在堆中的对象。这两个值指向的是同一个对象,因此它们会相互影响。

所以传递参数的现象是

1.在向参数传递基本类型时,被传递的值复制给了一个局部变量(argument);在向参数传递引用类型的值时,会把这个值在内存中的地址复制给局部变量,因此这个局部变量的变化会反应在函数外部

function Add(num){
   num+=10;
   return num;
}

var count=20;
var result=Add(count);
console.log(count);    //20,没有变
console.log(result);   //30  

2.js中所有函数参数的传递都是按值传递的。值的注意的是,并不是说在局部作用域中被修改的对象会在全局中反应出来,就说明参数是按引用传递的

function setName(obj){
    obj.name="ywl";
    obj=new Object();
    obj.name="zhangsan";
}
var person=new Object();
setName(person);
console.log(person.name); //ywl

输出的值是ywl,因为在函内部重写obj,但是原始的引用并没有变,变量的引用是一个局部对象,而这个局部对象在函数执行完毕之后会被立即销毁。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97124.html

相关文章

  • JavaScript中的求值策略

    摘要:关于的求值策略,问中函数的参数传递是按值传递还是按引用传递回答很经典。所以不能说中函数的参数传递严格按值传递或按引入传递。中还采用一种参数传递策略,叫按共享传递。中参数是必须先求值再作为实参传入函数的。参考求值策略中函数参数的默认值 最近在研究 lambda 演算中的 η-变换 在 JavaScript 中的应用,偶然在 stackoverflow 上看到一个比较有意思的问题。关于 J...

    MrZONT 评论0 收藏0
  • JavaScript深入之参数按值传递

    摘要:深入系列第九篇,除了按值传递引用传递,还有第三种传递方式按共享传递定义在高级程序设计第三版,讲到传递参数中所有函数的参数都是按值传递的。 JavaScript深入系列第九篇,除了按值传递、引用传递,还有第三种传递方式 —— 按共享传递 定义 在《JavaScript高级程序设计》第三版 4.1.3,讲到传递参数: ECMAScript中所有函数的参数都是按值传递的。 什么是按值传递呢?...

    DataPipeline 评论0 收藏0
  • JavaScript 是如何工作的:JavaScript 的共享传递和按值传递

    摘要:它对数组和对象使用按值传递,但这是在的共享传参或拷贝的引用中使用的按值传参。例如在这里,变量和值在执行期间存储在堆栈中。返回值这是可选的,函数可以返回值,也可以不返回值。变量被推入堆栈,从而在执行时成为的副本。 这是专门探索 JavaScript 及其所构建的组件的系列文章的第 22 篇。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 如果你错过了前面的章节,可...

    keithyau 评论0 收藏0
  • JavaScript 是如何工作的:JavaScript 的共享传递和按值传递

    摘要:它对数组和对象使用按值传递,但这是在的共享传参或拷贝的引用中使用的按值传参。例如在这里,变量和值在执行期间存储在堆栈中。返回值这是可选的,函数可以返回值,也可以不返回值。变量被推入堆栈,从而在执行时成为的副本。 这是专门探索 JavaScript 及其所构建的组件的系列文章的第 22 篇。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 如果你错过了前面的章节,可...

    陈伟 评论0 收藏0
  • JavaScript之按值传递

    摘要:中所有函数的参数都是按值传递的。基本类型本身是按值传递,具有不可变性,对基本类型的修改,实质上都是在栈内存中创建了新的值。中把这种拷贝也认为是按值传递。 本文共 1200 字,读完只需 5 分钟 概述 参数的传递分为按值传递和按引用传递,而 JavaScript 中参数的传递只有按值传递。 ECMAScript 中所有函数的参数都是按值传递的。 所谓按值传递就是: 把函数外部的值复制给...

    xiangchaobin 评论0 收藏0
  • 讲清楚之 javascript 参数传值

    摘要:讲清楚之参数传值参数传值是指函数调用时,给函数传递配置或运行参数的行为,包括通过进行传值。所以对的赋值会改变上下文栈中标识符保存的具体值此时如果使用的是按引用传递,则变量所指向的对象因该也被赋值为。 讲清楚之 javascript 参数传值 参数传值是指函数调用时,给函数传递配置或运行参数的行为,包括通过call、apply 进行传值。 在实际开发中,我们总结javascript参数传...

    itvincent 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<