码迷,mamicode.com
首页 > 编程语言 > 详细

javascript函数传参的思考

时间:2016-09-08 22:56:45      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

 今天下午思考了一下调用函数的时候,是怎么样吧参数传给执行的函数。当值的类型不同的时候,又没有变化。

  当参数的值是基本类型的时候,这个时候是按值传递的,这个肯定都是清楚的,但是当值是引用类型的时候,这个时候情况又是怎么样的啊。

  技术分享

  技术分享

当我们把一个对象当作参数的时候传递的时候,我们发现怎么运行funx函数,但是全局对象a变量也被修改了,这个时候有些迷惑。参数在传递的时候,不是通过值传递的么,为什么会修改外部环境中的对象的属性。发现这个好像是引用传递。但是,如果我们运行下面这样的函数的时候:

技术分享

技术分享

发现输出的结果并没有变成20,其实当函数的参数变成引用类型的时候,我们这个值就变了,我们都知道js的基本数据类型是保存在栈内存中,而引用类型却是保存在堆内存中的。当我们用一个变量指向这个引用类型的时候,其实变量并不是确定指向这个引用类型,而是一个指向这个引用类型所在内存的指针。当我们在函数中传引用类型的时候,其实也是这样的,我们只是把这个指针传进去了。

 

javascript函数传参的思考

标签:

原文地址:http://www.cnblogs.com/ds-hufei/p/5854571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!