日期:2014-05-16  浏览次数:20399 次

js面向对象的问题,这样的语句是什么意思?
<script   type= "text/javascript ">
aa=(function   aaaaa(){
alert( "hello ");
})();
</script>  
问题是:后面的()是什么意思?
我以为上面的代码等价于:
var   aa={
    aaaaa:function(){
    alert( 'hello ');
    }
}
aa.aaaa();
结果不是,因为:
aa=(function   aaaaa(){
alert( "hello ");
})();
aa.abc   =   function()
{
alert( "wo ");
}
aa.abc();
是错的,
而:
var   aa={
    aaaaa:function(){
    alert( 'hello ');
    }
}
aa.abc   =   function()
{
alert( "wo ");
}
aa.abc();
则是正确的,说明两者并不想等,那么前面的等价代码是什么意思呢?

------解决方案--------------------
学习……
------解决方案--------------------
等价于:
<script type= "text/javascript ">
function aaaaa(){
alert( "hello ");
};
aaaaa();
</script>
把对象句柄赋于aa再调用
------解决方案--------------------
google js函数式编程
------解决方案--------------------
最后的(),应该是等同于aaaaa的();