js函数(2)
2024-09-08 08:44:24
8.3函数的形参和实参
js中的函数并未指定函数形参的类型,函数调用也未对传入的实参值做任何类型的检查。
8.3.1函数的形参和实参
当调用函数时传入的实参比函数声明时指定的形参个数要少,剩下的参数都将设置为undefined; { a=a|| [] 考虑 || 运算符 即当第一个参数为真的话就返回第一个,否则返回第二个参数 }
8.3.2可变长的实参列表:实参对象:
适用于 传入的参数个数超过了函数定义时的形参个数时,没有办法直接获得未命名值的引用,参数对象解决了这个问题。
在函数体内,标识符arguments是指向实参对象的引用。实参对象是一个类数组的对象,所以可以通过下标访问传入函数的实参值 arguments[0].
注意,arguments不是真正的数组,只是一个实参对象。每个实参对象都包含以数字为索引的一组元素以及length属性。
实参对象定义了callee和caller属性。在严格模式下,对这两种属性进行读写都会产生错误。而在非严格模式下规定:
callee属性指代当前正在执行的函数,caller指代调用当前正在执行的函数的函数var fa=function (x) { if (x<=1){return 1; return x*arguments.callee(i-1);
};
8.3.3将对象属性用作实参
为了便于记住调用函数中实参的正确顺序,所以通过名/值对的形式传入参数。
copy({from:a,to:b,length:4}); 8.4作为值的函数
1将函数名赋值给变量,则变量名就相当于函数名
2将函数赋值给对象的属性,当函数作为对象的属性调用时,函数就称为方法;
var o={ squer:function(x){x*x}};
var y=o.squer(16);
3当吧它们赋值给数组元素时,函数甚至不需要带名字
var a=[function(x){x*x;},20];
a【0】(a【1】);
最新文章
- css3圆形百分比进度条的实现原理
- replace和replaceAll
- 实现android手机来电拦截系统页面弹出自定义页面特效
- html5的新标签
- 设置CentOS6.5时钟同步
- 如果页面引用了外部JS代码,会被IE缓存的解决方法
- JQuery asp.net 简单入门
- C# 入门篇之listview用法
- CF444C DZY Loves Colors
- Swift入门(十一)——类型转换与is、as操作
- HDU 1358 (所有前缀中的周期串) Period
- 我的网站终于连续一星期,ip数1000以上了
- OpenSSH远程拒绝服务漏洞
- xcode 执行时模拟器不可选的问题
- 【安装】beautifulsoup4—美丽汤的安装
- ASP.NET用户控件操作ASPX页面
- Codeforces Education Round 11
- Django web框架篇:基础
- Maven的下载、安装与环境配置
- matlab 测试 数字二次混频
热门文章
- 请问如何上传带图片的word
- qt5 + vs2015自定义控件错误:undefend interface
- Docker实践--搭建Yapi测试平台
- [题解] [CF1037D] Valid BFS?
- 总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .
- nodeJS 项目如何运行
- kotlin 泛型中类型投射
- 19 个强大、有趣、又好玩的 Linux 命令!
- python实现并发服务器实现方式(多线程/多进程/select/epoll)
- python flask url参数