function test(){
this.aa=function(){
alert('sdf');
}
}
var aa=new test();
aa.aa();//这里弹出的是sdf
test.aa();//问题在这里据我所知 test()本是一个对象;
既然是对象 那我直接使用对象的方法即test.aa();为什么不能弹出 非要新建对象aa 才能调用里面的方法呢

解决方案 »

  1.   

    test是一个函数,不存在 函数.方法() 的调用
      

  2.   

    test是个对像,就像人是个对象,这时候它们都是抽像的,是泛指的,并不代表具体的某一个对象。
    var aa=new test();是test对像的一个实例化。就像“张三”是“人”这个对像的实例化。
    aa()是test对像的一个方法,就像“跑步”是人具有的动作之一。
    aa.aa()是实例化了的对象aa调用它的方法aa(),就像“张三去跑步”是一件很具体的人和事。
    而test.aa()之所以不可行就像是“人去跑步”一样空洞无意义。
      

  3.   


    <script type="text/javascript">
    <!--
    function test(){ 
    this.aa=function(){ 
    alert('sdf'); 

    } alert(typeof test) // 楼主可以看下 与typeof aa的区别
    var aa=new test(); 
    alert(typeof aa)
    aa.aa();
    test.aa();
    //-->
    </script>
      

  4.   

    你创建的TEST()这个FUNCTION在JS中叫做用户对象
    文档中指出THIS指的是新创建的TEST()对象,而且此关键字用在对象的构造函数用。
    所以你在没有实例化的时候根本不存在THIS,也没有AA