参考自<<JavaScript权威指南 第6版>>

/*
 * 将对象属性用作实参, 从而不必记住参数的顺序.
 */
function arraycopy(from,from_start,to,to_start,length){
    for(var i=from_start,j=to_start;i<from_start+length;++i,++j){
        to[j] = from[i];
    }
}
function easycopy(args){
    arraycopy(args.from,
        args.from_start || 0, //default param
        args.to,
        args.to_start || 0,
        args.length);
}
var a = [1,2,3,4],b = [];
easycopy({from:a,to:b,length:4});
console.log(b); // [ 1, 2, 3, 4 ]

/*
 * arguments对象有 callee 和 caller属性, 在非严格模式下,
 * callee: 指代当前正在执行的函数, 非标准的属性,但是大多数浏览器都已经实现了. 在匿名函数的递归调用中很有用.
 * caller: 可以访问调用栈
 */
var fact = function(x){
    if(x <= 1)
        return 1;
    return x * arguments.callee(x-1);
}
// 这样也是可以的
var fact2 = function(x){
    if(x <= 1)
        return 1;
    return x * fact2(x-1);
}
console.log(fact(5)); // 120
console.log(fact2(5)); // 120

/* 代码自文档化, 因为js没有参数类型, 所以最好加参数注释或者取有意义的名字,如下:
 * number表示参数是数字类型的
 * ... 表示数量不限.
 */
function max(/*number...*/){};

更多相关文章

  1. JavaScript:使用函数参数检索javascript对象键
  2. Js中获取超链接里面传递的参数值
  3. 如何使用AngularJS获取url参数
  4. 使用jackson json将属性添加到json字符串
  5. React组件的属性PropTypes
  6. js 处理url中文参数 java端接收处理
  7. Javascript XML DOM将属性设置为特定元素
  8. 为什么我收到此错误:“未捕获的TypeError:无法读取未定义的属性'标
  9. AngularJs location.path没有传递参数

随机推荐

  1. Android横竖屏切换解决方案
  2. Android的安装和配置【Z】
  3. Android生成keystore是报错拒绝访问
  4. Received status code 400 from server:
  5. Android helloword demo程序不能运行
  6. Android(安卓)RecyclerView简单运用
  7. Android(安卓)JNI 实例
  8. Android面面观——Android事件处理下(按键
  9. android 自定义ListView中的单项选择
  10. 2011.07.18(2)——— android Animation的