您的位置 首页 > 娱乐休闲

前端基础 | Javascript函数传值的方式

本文首发在个人博客上:

函数传值

《JavaScript高级程序设计》书中说:ECMAScript中所有函数的参数都是按值传递的。

按值传递

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

基本数据类型

传递的是原始值本身

在函数中修改传入的值,不会影响原来的数据

var value = 1; function foo(v) { v = 2; con(v); //2 } foo(value); con(value) // 1

复杂数据类型

传递的是对象的引用的副本,看下面两个例子,看看有什么不一样?

// 例子1 var obj = { value: 1 }; function foo(o) { o.value = 2; con); //2 } foo(obj); con) // 2 // 例子2 var obj = { value: 1 }; function foo(o) { o = 2; con(o); //2 } foo(obj); con) // 1

解释:

对于复杂的数据类型,函数内部的临时变量和传入的参数指向同一个内存地址,所以有例子一,我们能通过 o.value 找到内存中的 o,也就找到了外部的 obj,所以我们修改 o.value 值的时候,也会影响 obj 中的 value 值。

对于例子二,因为是直接对传入的参数进行了赋值操作,这会将内部参数 o 进行重新绑定,指向了一个新的地址,所以此时修改函数内部的值不会对外部有影响。

参考文章

感谢你的阅读

先就记录这几个知识点吧,多了一次性也记不住,大概率你也不会来看第二遍


责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“html页面如何传值,html,页面传值,html页面传值并且接收,html不同页面传值”边界阅读