function test(){
this.aa=function(){
alert('sdf');
}
}
var aa=new test();
aa.aa();//这里弹出的是sdf
test.aa();//问题在这里据我所知 test()本是一个对象;
既然是对象 那我直接使用对象的方法即test.aa();为什么不能弹出 非要新建对象aa 才能调用里面的方法呢
this.aa=function(){
alert('sdf');
}
}
var aa=new test();
aa.aa();//这里弹出的是sdf
test.aa();//问题在这里据我所知 test()本是一个对象;
既然是对象 那我直接使用对象的方法即test.aa();为什么不能弹出 非要新建对象aa 才能调用里面的方法呢
var aa=new test();是test对像的一个实例化。就像“张三”是“人”这个对像的实例化。
aa()是test对像的一个方法,就像“跑步”是人具有的动作之一。
aa.aa()是实例化了的对象aa调用它的方法aa(),就像“张三去跑步”是一件很具体的人和事。
而test.aa()之所以不可行就像是“人去跑步”一样空洞无意义。
<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>
文档中指出THIS指的是新创建的TEST()对象,而且此关键字用在对象的构造函数用。
所以你在没有实例化的时候根本不存在THIS,也没有AA