高级三——函数的参数
来源:互联网 发布:传奇千里传音数据 编辑:程序博客网 时间:2024/06/01 22:43
<script>
//ECMAScript函数传递的参数可以是0到多个,可以是任意数据类型。没有函数签名的概念,所以函数不能重载。
functiondoAdd(num1,num2){
arguments[1]= 10;//arguments对象可以与命名参数一起使用。
alert(arguments[0]+num2);//NaN。没有传递值的命名参数将被自动赋予undefined。
alert(arguments[0]+arguments[1]);//15。ECMAScript函数中的命名参数只是提供便利,并不是必须的。
alert(arguments.length);//1。arguments对象的长度是由传入的参数个数决定的,不是由定义函数时的命名参数的个数决定的。
}
doAdd(5);//只传入一个参数,所以arguments[1]设置的值不会反应到命名参数中。
//arguments对象是类数组,不是Array的实例。
</script>
<script>
functiondoAdd2(num1,num2){
arguments[1]= 10;//严格模式下,重写arguments的值会导致错误。
alert(arguments[0]+num2);//30
alert(arguments[0]+arguments[1]);//30。num2和arguments[1]的内存空间是独立的,但他们的值是同步的。
alert(arguments.length);//2
}
doAdd2(20,30);
</script>
<script>
functionaddTen(num){
num+= 10;
returnnum;
}
varcount = 20;
varresult = addTen(count);
varnum = 30;
varresult2 = addTen(num);//如果未对num进行声明并且赋值,此处将会报错。这里的num与函数里面的形参num无关。
alert(count);//20。参数是按值传递的,所以传递的是20,而不是变量count。
alert(result);//30
alert(num);//30
alert(result2);//40
</script>
<script>
functionsetName(obj){
obj.name= "Jame";
}
varperson = new Object();//person指向的对象在堆内存中只有一个,且是全局对象。
setName(person);//obj和person引用的是同一个对象。
alert(person.name);//"Jame"
</script>
<script>
functionsetName(obj){
obj.name= "Jame";
console.log(obj);//{name: "Jame"}
obj= new Object();//当在函数内部重写obj时,这个变量引用的就是一个局部对象,这个局部对象会在函数执行完毕后立即被销毁。
obj.name= "Tom";//在函数内部修改了参数不会影响到原始的引用person
console.log(obj);//{name: "Tom"}
}
varperson = new Object();
setName(person);//(参数是按值传递,而不是按引用传递)多了这句话反而不好理解。
console.log(person);//{name: "Jame"}
console.log(person.name);//"Jame";
</script>
//把ECMAScript中的参数想象成局部变量。
阅读全文
0 0
- 高级三——函数的参数
- java基础篇(三)——函数的重载和函数的参数
- Python入门(三)——函数,参数,参数默认值,可变参数,关键字参数,组合参数,递归函数
- 每天学习一点C++之三——函数的默认参数
- c/c++语言中函数参数传递的三种方式——徐吉平
- 第二周——项目21C++语言中函数参数传递的三种方式
- 第二周——C/C++语言中函数参数传递的三种方式
- 第二周项目一 ——函数参数传值的三种方式
- C语言笔记——结构作为函数参数的三种方式
- 第一周项目 — C/C++语言中函数参数传递的三种方式
- 第二周项目—C/C++语言中函数参数传递的三种方式
- 第二周项目1—C/C++语言中函数参数传递的三种方式
- 第2周、项目1—C++语言中函数参数传递的三种方式
- 第二周项目1—C/C++语言中函数参数传递的三种方式
- 项目1—C/C++语言中函数参数传递的三种方式
- 第二周—C/C++语言中函数参数传递的三种方式
- 第二周项目—利用函数参数传递的三种方式
- 第二周项目 2—C/C++语言中函数参数传递的三种方式
- 数据库系列-数据库查询
- 解决scrollView嵌套viewpager+listview,scrollview不能滑动的问题
- 关于分布式事务、两阶段提交协议、三阶提交协议
- static synchronized 和 synchronized 的实例
- java 自我知识总结(二十)异常
- 高级三——函数的参数
- Caffe学习之一:Caffe的基本结构
- linux中如何让进程在后台运行
- 浅谈网管
- Python——“元组、列表、字典、数组和矩阵”的大小问题
- 分布式一致性算法——paxos
- cnn本质
- MyBatis Generator 详解
- springmvc请求路径和请求参数的获取注解- @PathVariable和@RequestParam