如何通过实例掌握JavaScript函数参数传递的细节?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2226个文字,预计阅读时间需要9分钟。
首先,我们来看一道JS的笔试题:
javascriptvar setObj=function(o) { o.name=xiaoming; o={}; o.name=xiaohong;};var p={name: xixi, age: 24};setObj(p);console.log(p);
答案是:{name: xiaohong, age: 24}。
解析:在JavaScript中,函数参数默认为引用类型。在`setObj`函数中,虽然`o`被重新赋值为一个空对象,但由于`p`是按引用传递给`setObj`的,所以`p`的引用并没有改变,它仍然指向原来的对象。因此,`p`的`name`属性被修改为`xiaohong`。
先看一道JS的笔试题:
var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p);
答案是{name:xiaoming,age24};
在JavaScript中函数参数默认为引用类型。
一.函数传递值类型:
代码实例如下:
function addNum(num){ num+=10; return num; } var num=10; var result=addNum(num); console.log(num); console.log(result);
以上代码的弹出值分别为:10和20,下面进行一下分析:
声明变量num并复制为10,这个是num是一个值类型,当为函数传递参数的时候,是将此值复制一份传递给函数,所以在函数执行之后,num本身的值并没有被改变,函数中被改变的值仅仅是一个副本而已。
本文共计2226个文字,预计阅读时间需要9分钟。
首先,我们来看一道JS的笔试题:
javascriptvar setObj=function(o) { o.name=xiaoming; o={}; o.name=xiaohong;};var p={name: xixi, age: 24};setObj(p);console.log(p);
答案是:{name: xiaohong, age: 24}。
解析:在JavaScript中,函数参数默认为引用类型。在`setObj`函数中,虽然`o`被重新赋值为一个空对象,但由于`p`是按引用传递给`setObj`的,所以`p`的引用并没有改变,它仍然指向原来的对象。因此,`p`的`name`属性被修改为`xiaohong`。
先看一道JS的笔试题:
var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p);
答案是{name:xiaoming,age24};
在JavaScript中函数参数默认为引用类型。
一.函数传递值类型:
代码实例如下:
function addNum(num){ num+=10; return num; } var num=10; var result=addNum(num); console.log(num); console.log(result);
以上代码的弹出值分别为:10和20,下面进行一下分析:
声明变量num并复制为10,这个是num是一个值类型,当为函数传递参数的时候,是将此值复制一份传递给函数,所以在函数执行之后,num本身的值并没有被改变,函数中被改变的值仅仅是一个副本而已。

