<script type="text/javascript">
/*<![CDATA[*/
Function.prototype.a=function(){
    return function(){
        alert(this==window)
    }
}
Function.a()();function t()
{}t.a()();
/*]]>*/
</script>

解决方案 »

  1.   

    哦哦````
    Function and function
    没看出来耶``汗
      

  2.   

    有没有可能 成功弹出 false ?
    怎样调用?
      

  3.   

    Function.prototype.a=function(){
    return function(){
    alert(this==window)
    }
    }
    var a=function(){}
        var b=new Function()
        function c(){}
    var d=new c()
        var e=new a()
        var f=new b()
    a.a()()//true
    b.a()()//true
    c.a()()//true
    //d.a()()出错
    //e.a()()出错
    //f.a()()出错
      

  4.   

    Function.prototype.a=function(){
    return function(){
    alert(this==window)
    }
    }
    var a=function(){}
        var b=new Function()
        function c(){}
    var d={a:"ss"}
    a.a().apply(d)
    弹出false
      

  5.   


    Function.prototype.a=function(){
        return function(){
            alert(this==window)
        }
    };// 试试
    ({x:function(){}.a()}).x();
      

  6.   

    Function.prototype.a = function(){
        return function(){
            alert(this==window)
        }
    }var foo = function(){....}     //随便写一个function,他做为Function类型的实例,会具有a()方法。alert(typeof foo.a)           //看看有没有//可以这样调用:var alt = foo.a();    //这样返回值是 function(){alert(this==window))}
    alt();            //这样就会执行里面的alert()
      

  7.   

    个人认为除了用 apply call把this转换  而弹出false之外
    是不会再有别的情况弹出false的 
      

  8.   

    从理论上讲,function=new Function();(真实情况下不能这么写,只是用来说明关系)
    Function.prototype.a 是将Function的原型(prototype)扩展了,所以,所有的function都会含有指向属性a的引用,都可以调用这个属性。
      

  9.   

    而且,a返回的是一个function(){}形式的匿名函数(就是一个函数),所以想调用里面的那个函数还需要再加一个();就成了这种形式
    function b(){}
    alert(b.a());  ==>function(){
                     alert(this==window)
                    }
    b.a()()就相当于(function(){alert(this==window)})();this指向调用函数的当前的window,所以应该是返回true吧
      

  10.   

    8楼的用apply的方式改变了它的上下文了 所以会返回false
      

  11.   

    你function里面的this是object,window也是object
    返回true,有啥问题吗?
      

  12.   

    修改prototype的作用是以后每个对象都会具有这个方法,经过楼主的定义之后,比如有这样的定义
    function b() {
    }
    可以调用b.a();