函数传值传参
Posted rencoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数传值传参相关的知识,希望对你有一定的参考价值。
var obj = {n:1};
(function(obj){
console.log(obj.n); //1
obj.n=3;
var obj = {n:2}; // 传入参数obj 与 这里再次声明, 会形成重复声明
console.log(obj.n) //2
})(obj);
console.log(obj.n); //3
var obj1 = {n:1};
function fn(obj1){
console.log(obj1.n); //1
obj1.n=3;
obj1 = {n:2};
console.log(obj1.n) //2
}
fn(obj1);
console.log(obj1.n); //3
var x = 1;
function a(x) {
// 形参有自己的作用域, 独立于函数外的作用域, 因此不会影响外面的x
console.log(x); // 1
x = 2;
console.log(x); // 2
}
a(x);
console.log(x); // 1
var obj2 = {n:1};
function b(obj2) {
// js传值; 对象传递的是指针(复制一份指针)
console.log(obj2.n); // 1
obj2.n = 2; // 引用类型改变相互影响
obj2 = {n:3}; // 将函数内部变量obj指针从{n:1}变为{n:2}; 外部obj的指针不变, 还是{n:1}
console.log(obj2.n); // 3
}
b(obj2);
console.log(obj2.n); // 2
// 函数参数的声明相当与函数内部声明
以上是关于函数传值传参的主要内容,如果未能解决你的问题,请参考以下文章