函数之传递参数

ECMAScript�中所有的函数都是按值传递的。也就是说把函数外部的值赋值给函数内部的参数,就和把值从一个变量赋值到另一个变量一样。基本类型值的传递如同基本类型变量的复制一样,而引用类型值的传递,则如同引用类型变量的复制一样。

在向参数传递基本类型的值时,被传递的值会被赋值给一个局部变量。

<code>
funtion addTen(num){
num+=10;
retuen num;
}

var count = 20;
var result = addTen(count);
alert(count) //20,没有变化
alert(result) //30
</code>

加入num是按引用传递的话,那么变量count的值也将变成30,从而反映函数内部的修改。

<code>
function setName(obj){
obj.name = "haha";
}

var person = new Object();
setName(person);
alert(person.name) ; //“哈哈” obj和person引用的是同一个对象
</code>

下面再看一个例子
<code>
function setName(obj){
obj.name = "haha";
obj = new Object;
obj.name="change";
}

var person =newe Object();
setName(person);
alert(person.name); //“哈哈”
</code>

因为函数内部重写obj,这个变量引用的就是一个局部变量了,而这个局部对象会在函数执行完毕后立即销毁。可以把ECMAScript函数的参数想象成局部变量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ECMAScript 中所有函数的参数都是按值传递的。也就是说,把函数外部的值复制给函数内部的参数,就和把值从一...
    封清扬阅读 147评论 0 0
  • title: 原生js对象的浅拷贝和深拷贝的总结 这里是说明. 在此之前我们先复习两个知识点. 第一个知识点:对象...
    KingJeason阅读 909评论 1 8
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,707评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,786评论 18 399
  • TitleViewpager 一个简单易用,能自定义,带title的viewpager 效果 模式 实现 depe...
    codbking阅读 1,330评论 2 8