js 方法中内部属性arguments的callee属性
2015-09-13 12:43
721 查看
var factorial=function(num){
if(num<=1)
return 1;
else
// return num*factorial(num-1);//递归时,在方法内部通过该方法的方法名来调用自己是非常危险的,因为js可以直接修改方法变脸的值
return num*arguments.callee(num-1);//递归时,应该使用方法内部属性arguments的callee属性,它保存了当前方法的地址(指针)
}
var another=factorial;
factorial=function(){
return 1;
}
alert(another(5));
alert(another(5));
if(num<=1)
return 1;
else
// return num*factorial(num-1);//递归时,在方法内部通过该方法的方法名来调用自己是非常危险的,因为js可以直接修改方法变脸的值
return num*arguments.callee(num-1);//递归时,应该使用方法内部属性arguments的callee属性,它保存了当前方法的地址(指针)
}
var another=factorial;
factorial=function(){
return 1;
}
alert(another(5));
alert(another(5));
相关文章推荐
- 我的JS历史知识
- js中获取时间 new Date() 汇总
- 在html中键入javascript代码
- JS面向对象程序设计之创建对象模式
- js中arguments的用法
- JS网址正则验证
- 现代浏览器原生js获取id号方法
- apidocjs使用过程记录
- JavaScript权威指南_157_第17章_事件处理_17.0-概述
- Javascript原型
- 【JavaScript】学习笔记(函数,符号,循环)
- JS-数组操作
- JSTL标签库学习
- IE9、IE10浏览器提示是否下载json数据
- javascript实现在指定元素中垂直水平居中
- JS设计模式之序
- 【JSP】JSP中9个内置对象
- JS-面向对象-继承
- BZOJ 1030: [JSOI2007]文本生成器( AC自动机 + dp )
- Json数据解析的封装