JavaScript中的函数大法
【摘要】 JavaScript中的函数大法JavaScript中的函数具有极高的灵活性,可以实现一些其他语言比较复杂实现的功能。函数嵌套在一个函数中,可以嵌套另一个函数,这个嵌套的函数作用域只在外层函数中,可用于局部的封装:/** * 格式化日期 */function getDate() { var time = new Date(); function getFormatted(num...
JavaScript中的函数大法
JavaScript中的函数具有极高的灵活性,可以实现一些其他语言比较复杂实现的功能。
函数嵌套
在一个函数中,可以嵌套另一个函数,这个嵌套的函数作用域只在外层函数中,可用于局部的封装:
/** * 格式化日期 */ function getDate() { var time = new Date(); function getFormatted(num) { return num < 10 ? '0' + num : num; } return time.getFullYear() + '-' + getFormatted(time.getMonth() + 1) + '-' + getFormatted(time.getDate()); }
这种嵌套使用,在有的场景下是很方便的,比如,在一个方法中,需要执行多次某一动作,当这个操作又与类中其他方法没有任何关系,其作用大小不值得提取为一个独立的方法,那么,在方法内部构造这样一个内嵌的函数就是取巧的一种方式。
函数的不同参数
对于具有相同方法名,不同参数个数的函数,也称为函数的重载,在JavaScript中可以用一个函数实现:
/** * 格式化日期 */ function getDate(separator) { if(!separator) { separator = '-'; } var time = new Date(); function getFormatted(num) { return num < 10 ? '0' + num : num; } return time.getFullYear() + separator + getFormatted(time.getMonth() + 1) + separator + getFormatted(time.getDate()); } alert(getDate()); //yyyy-MM-dd alert(getDate('/')); //yyyy/MM/dd
经过这样的处理,在一个方法中就实现了对参数默认值的赋值,而在调用方法时,在有某些默认值的情况下,就可以直接调用,而不用传入多余的默认值,这种情况类似于函数的重载,又相当于为参数传入默认值。
闭包
函数可以作为一个函数的参数进行传递,这就使得函数更加的灵活:
function action(a, b, actions) { return actions(a, b); } function add(a, b) { return a + b; } function multiply(a, b) { return a * b; } alert(action(3, 4, add)); alert(action(3, 4, multiply));
这种情况下,调用同一个函数时,通过传入不同的函数作为内部参数,就可以实现不同的操作,在上述例子中,可以实现不同的数学运算,而且,更进一步,这种使用方式可以将函数作为闭包传入,实现函数的灵活调用。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)