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】);

最新文章

  1. css3圆形百分比进度条的实现原理
  2. replace和replaceAll
  3. 实现android手机来电拦截系统页面弹出自定义页面特效
  4. html5的新标签
  5. 设置CentOS6.5时钟同步
  6. 如果页面引用了外部JS代码,会被IE缓存的解决方法
  7. JQuery asp.net 简单入门
  8. C# 入门篇之listview用法
  9. CF444C DZY Loves Colors
  10. Swift入门(十一)——类型转换与is、as操作
  11. HDU 1358 (所有前缀中的周期串) Period
  12. 我的网站终于连续一星期,ip数1000以上了
  13. OpenSSH远程拒绝服务漏洞
  14. xcode 执行时模拟器不可选的问题
  15. 【安装】beautifulsoup4—美丽汤的安装
  16. ASP.NET用户控件操作ASPX页面
  17. Codeforces Education Round 11
  18. Django web框架篇:基础
  19. Maven的下载、安装与环境配置
  20. matlab 测试 数字二次混频

热门文章

  1. 请问如何上传带图片的word
  2. qt5 + vs2015自定义控件错误:undefend interface
  3. Docker实践--搭建Yapi测试平台
  4. [题解] [CF1037D] Valid BFS?
  5. 总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .
  6. nodeJS 项目如何运行
  7. kotlin 泛型中类型投射
  8. 19 个强大、有趣、又好玩的 Linux 命令!
  9. python实现并发服务器实现方式(多线程/多进程/select/epoll)
  10. python flask url参数