如何通过实例探究JavaScript函数参数传递的深层机制?

2026-04-09 23:070阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2281个文字,预计阅读时间需要10分钟。

如何通过实例探究JavaScript函数参数传递的深层机制?

首先,我们来看一道JavaScript的笔试题:

javascriptvar setObj=function(o) { o.name=xiaoming; o={}; o.name=xiaohong;};var p={name: xixi, age: 24};setObj(p);console.log(p);

答案是:`{name: xixi, age: 24}`

在JavaScript中,函数参数默认为引用类型。在这个例子中,`setObj`函数接收一个对象`o`作为参数。在函数内部,首先将`o.name`设置为`xiaoming`,然后通过`o={};`将局部变量`o`指向一个新的空对象。此时,由于`o`是`p`的引用,`p`的`name`属性被重置为`xiaohong`。但由于`o`已经被重新指向了一个新的空对象,所以`p`的`name`属性并没有受到影响,最终输出结果仍然是`{name: xixi, age: 24}`。

先看一道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中函数参数默认为引用类型。

阅读全文
标签:传递先看

本文共计2281个文字,预计阅读时间需要10分钟。

如何通过实例探究JavaScript函数参数传递的深层机制?

首先,我们来看一道JavaScript的笔试题:

javascriptvar setObj=function(o) { o.name=xiaoming; o={}; o.name=xiaohong;};var p={name: xixi, age: 24};setObj(p);console.log(p);

答案是:`{name: xixi, age: 24}`

在JavaScript中,函数参数默认为引用类型。在这个例子中,`setObj`函数接收一个对象`o`作为参数。在函数内部,首先将`o.name`设置为`xiaoming`,然后通过`o={};`将局部变量`o`指向一个新的空对象。此时,由于`o`是`p`的引用,`p`的`name`属性被重置为`xiaohong`。但由于`o`已经被重新指向了一个新的空对象,所以`p`的`name`属性并没有受到影响,最终输出结果仍然是`{name: xixi, age: 24}`。

先看一道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中函数参数默认为引用类型。

阅读全文
标签:传递先看