参考自<<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 paramargs.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...*/){};

转载于:https://www.cnblogs.com/roger9567/p/5039192.html

JavaScript 对象属性作实参以及实参对象的callee属性相关推荐

  1. 自定义UserControl的属性为什么不能在设计时显示在属性窗口中

    自定义UserControl的属性为什么不能在设计时显示在属性窗口中 自定义UserControl的属性为什么不能在设计时显示在属性窗口中 http://www.cnblogs.com/dudu/ar ...

  2. JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法...

    函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留 ...

  3. JavaScript中的高级特性及特别对象、属性和方法

    一,编写构造函数    可以使用 new 运算符结合像 Object().Date() 和 Function() 这样的预定义的构造函数来创建对象并对其初始化.面向对象的编程其强有力的特征是定义自定义 ...

  4. JavaScript学习(三十三)—事件对象常用的属性和方法

    JavaScript学习(三十三)-事件对象常用的属性和方法 (一).type属性 <style>#box {width: 200px;height:

  5. javascript动态添加、修改、删除对象的属性和方法

    上一节介绍了如何引用一个对象的属性和方法,现在介绍如何为一个对象添加.修改或 者删除属性和方法. 在其他语言中,对象一旦生成,就不可更改了,要为一个对象添加修改成员必须要在对 应的类中修改,并重新实例 ...

  6. php json 遍历 keys,详解javascript遍历json对象的key和任意js对象属性的示例代码(图)...

    下面小编就为大家带来一篇javascript遍历json对象的key和任意js对象属性实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 使用 keys 方法获取该对象 ...

  7. JavaScript基础13-day15【DOM增删改、DOM添加删除记录、操作内联样式、获取元素的样式、DOM Element 对象、滚动条练习、事件对象、div跟随鼠标移动、事件冒泡】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  8. JavaScript学习(五十七)— arguments对象

    JavaScript学习(五十七)- arguments对象 arguments对象 该对象是函数内部的一个属性,这个属性本身也是一个对象 这个对象是用来管理函数被调用时传过来的实参的 argumen ...

  9. JavaScript学习(三十)—事件对象

    JavaScript学习(三十)-事件对象 大家好,我是小王,一个很喜欢Coding的小女孩. 很喜欢这句话:人数没有白走的路,每一步都算数,关注我,后期分享更多资源! 事件对象:该对象记录了和事件相 ...

最新文章

  1. Spring源码解析-核心类之XmlBeanDefinitionReader
  2. 分析单点登录cas的解决方式
  3. 九十一、前端可视化ECharts的使用
  4. linux 无线网卡休眠,无线网卡在Linux下活起来
  5. 前端存储 (2) - sessionStorage ,localStorage
  6. 2008年度最佳开源CMS大奖赛开幕
  7. wordpress表格筛选_您是否尝试过使用#1 WordPress插件在您的网站上创建表格?
  8. crazy programer
  9. 【智能车】模糊PID控制原理详解与代码实现
  10. FPGA实验-VGA显示
  11. 网页中超长图片转成pdf文档
  12. BLE_BQB Test_Carrier frequency offset and drift, LE Coded (S=8)_RF-PHY/TRM/BV-14-C
  13. html中如何使图片边框隐藏,css怎么去除图片边框
  14. Android怎么在Service中执行耗时操作
  15. C专家编程 第8章 为什么程序员无法分清万圣节和圣诞节 8.2 根据位模式构筑图形
  16. 入手评测 锐龙r7 5825u和i5 1240p选哪个好
  17. matlab数字图像处理库,MATLAB06:数字图像处理
  18. 颓废了很久了,需要振作了
  19. java中怎么判断数组下标越界_初学java遇到疑惑,数组下标越界,求解答!
  20. localhost与127.0.0.1

热门文章

  1. SpringBoot报错:Could not autowire. No beans of ‘DiscussantMapper‘ type found
  2. Linux系统使用apt命令安装java
  3. MySQL 字符串删除表情符_PHP处理字符中的emoji表情(判断/移除/存储)
  4. java复杂吗_java – 是哈希一个合适的解决方案吗?我过度复杂吗?
  5. set_origin_pose算子说明
  6. oracle设置缓存大小设置多少,【数据库类※从V$DB_CACHE_ADVICE中设置数据缓冲大小※】...
  7. 010-你觉得单元测试可行吗
  8. Slab,小对象也能搞出大事情
  9. Browser Security-同源策略、伪URL的域
  10. 记一次网易前端实习面试