<script>
function repeat(v) {
if (isNaN(v)) return;
document.writeln(v+"<br/>");
if (v<1) return;
//repeat(--v);
arguments.callee(--v)}
Number.prototype.repeat = repeat;
var num=10;
num.repeat(num);
</script>

解决方案 »

  1.   

    楼上正解!callee 属性返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。[function.]arguments.callee可选项 function 参数是当前正在执行的 Function 对象的名称。 说明
    callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。callee 属性的初始值就是正被执行的 Function 对象。这允许匿名的递归函数。
      

  2.   

    上面的方法很棒,也可用下面的方法
    <script>
    function repeat() {
    if (isNaN(this)) return;
    document.writeln(this+"<br/>");
    if (this<1) return;
    v=this
    repeat.call(--v)
    }
    Number.prototype.repeat = repeat;
    var num=10;
    num.repeat();
    </script>