1.函数的caller属性

(1)、区分函数是在函数体调用还是顶层代码中调用:顶层中调用函数,该函数的caller属性返回null,在函数中调用,会返回调用发i函数的函数;

<script>
function testFun(){
if(testFun.caller === null){
document.write('在顶层中调用');
}else{
document.write('在h函数中调用');
document.write('在' + testFun.caller.name + '中调用');
}
} /*直接调用*/、
testFun();
/*函数中调用*/
funtion test(){
testFun();
}
</script>

2.Arguments的callee属性

(1)、使用Arguments的callee属性来匿名递归调用函数

<script>
function outNum(x,y){
document.write(x + <br>);
if(x < y){
x ++;
return arguments.callee(x,y);
}
else if(x > y){
y --;
return arguments.callee(x,y);
}
else{
return
}
} /*调用*/、
outNum(9,4)
</script>

3.函数的apply()方法和call()方法

(1)、语法:funName.call(this[,arg1[,arg2....]]);

funName.apply(this,[arg1,arg2....]);apply方法后面的参数以数组的额形势传递

<script>
function range(_price){
if(typeof(_price) != 'number'){
this._price = 1000;
}else{
if(_price >1000){
this._price = 1000;
}else{
this._price = _price;
}
}
}
/*aplly写法*/
function Monitor(_price, _name)){
this.name = _name;
range.aplly(this,arguments);
}
/*call写法
function Monitor(_price, _name)){
this.name = _name;
range.call(this,_price);
}
*/
Monitor.prototype = new range(); var Monitor1 = new Monitor('c1',800); document.write(monitor1.name,monitor.price); </script>

  

最新文章

  1. 微信小程序开发工具测评
  2. 微信调用照相拍照等 js 接口的权限配置 和 照片上传和下载实现
  3. i春秋手动病毒查杀
  4. 随鼠标移动tab
  5. Android布局_表格布局TableLayout
  6. VC depends使用说明
  7. Nginx 变量漫谈(四)
  8. 能上QQ无法打开网页
  9. Android学习笔记:ActionBar使用介绍
  10. --@angularJS--指令与控制器之间较复杂的交互demo2
  11. 编译器 STVD 与 IAR 的差别 个人体验
  12. Kali学习笔记13:操作系统识别
  13. webpack4 系列教程(九): CSS Tree Shaking
  14. service的生命周期
  15. tr字符串的梗
  16. 吴裕雄 python 数据处理(3)
  17. AngularJs(SPA)单页面SEO以及百度统计应用(下)
  18. Linux经常使用命令(三) - pwd
  19. 再也不怕aop的原理了
  20. 2.C 基础

热门文章

  1. 生成树协议(STP)
  2. idhttp与cookie
  3. Delphi 打开网址
  4. 20165225 《Java程序设计》第二周学习总结
  5. java之堆和栈的比较
  6. 洛谷P3234 抄卡组 [HNOI2014] 字符串hash
  7. 第二章 构建布局良好的windows程序
  8. SmokePing介绍
  9. python datetime 模块
  10. IDEA与Elicpse