这篇文章从个人博客开始。
函数值
《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.文章《〈html页面如何传值〉html页面跳转传参!》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《〈html页面如何传值〉html页面跳转传参!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好