犀牛——第8章函数 8.3 函数的实参和形参
来源:互联网 发布:手机淘宝到货退款流程 编辑:程序博客网 时间:2024/05/18 03:23
8.3 函数的实参和形参
8.3.1 可选形参
例子:
//将对象o中可枚举的属性名追加至数组中,并返回这个数组a
//如果省略a,则创建一个新数组并返回这个新数组
function getPropertyNames(o,/*optional*/a){
if(a === undefined) a = [];//如果未定义,则使用新数组
for(var property in o) a.push(property);
return a;
}
//这个函数调用可以传入1个或2个实参
var a = getPropertyNames(o); //将o的属性存储到一个新数组中
getPropertyNames(p,a); //将p的属性追加至数组a中
*如果第一行代码中不使用if语句,可以使用“||”运算符:a = a || [];
*注意在函数定义中使用注释/*optional*/来强调形参是可选的。
8.3.2 可变长的实参列表:实参对象
在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象。
实参对象有一个重要的用处,就是让函数可以操作任意数量的实参。
function max(/*...*/){
var max = Number.NEGATIVE_INFINITY;
//遍历实参,查找并记住最大值
for(var i = 0; i < arguments.length; i++)
if(arguments[i] > max) max = arguments[i];
//返回最大值
return max;
}
var largest = max(1,10,100,2); //=>10000
arguments并不是真正的数组,它是一个实参对象。每个实参对象都包含以数字为索引的一组元素以及length属性,但它毕竟不是真正的数组。
8.3.3 将对象属性用做实参
通过名/值对的形式来传入参数,参数的顺序就无关紧要了。定义函数的时候,传入的实参都写入一个单独的对象之中,在调用的时候传入一个对象,对象中的名/值对是真正需要的实参数据。
8.3.4 实参类型
JavaScript方法的形参并未申明类型,在形参传入函数体之前也未做任何类型检查。给实参补充注释,对于可选的实参来说,可以在注释中补充一个“这个参数是可选的”。当一个方法可以接收任意数量的实参时,可以使用省略号:function max(/*number...*/){/*代码区*/}
- 犀牛——第8章函数 8.3 函数的实参和形参
- 犀牛——第8章函数 8.7函数属性、方法和构造函数
- 犀牛——第8章函数 8.1 函数定义
- 犀牛——第8章函数8.2函数调用
- 犀牛——第8章函数 8.6闭包
- 犀牛——第8章函数 8.4作为值的函数
- 犀牛——第8章函数8.5作为命名空间的函数
- JavaScript权威指南_64_第8章_函数_8.3-函数的实参和形参
- 犀牛——第8章函数 8。8returnret8.8函数式编程
- JavaScript学习——函数的实参和形参
- 函数的形参和实参
- 函数的形参和实参
- 函数 形参和实参
- 《权威指南》笔记 -- 8.3 函数的实参和形参
- 8.3 C语言函数的形参和实参
- 函数实参和形参(常见的错误理解)
- 【js学习笔记-047】-- 函数的实参和形参
- 关于函数实参和形参的地址传送
- 如何配置 MongoDB 副本集
- 条款02 尽量以const enum inline 替换#define
- 总结自己的Git常用命令
- GPU并行计算入门1——背景知识
- ios开发之UI基础--transframe属性
- 犀牛——第8章函数 8.3 函数的实参和形参
- JS面向对象的程序设计
- Java多线程基础(三)Java传统线程互斥技术
- 笔记本电脑蓝屏问题处理
- C++ operator new 重载(两个参数)
- shell脚本那点事儿7
- 动态数组进行对象管理
- java基础 面向对象2
- 1001. A+B Format (20)