js function疑问

js里面
function fun(){

}

fun:function(){

}
有什么区别,这两者分别在什么情况下用

一个是直接内嵌,一个是对象属性写法,第一种可以再方法前面调用,后一种必须要执行过赋值后才能调用,要不报错
第一种this指向window,后一种指向对象

    abc();//true
    //obj.abc();//出错
    var obj = { abc: function () { alert(this == obj); alert(this == window) } };
    obj.abc();//true false
    function abc() { ;alert(this==window) }

第一种是可以直接调用的,第二种需要先复制再调用