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

关于Js中对象的一些问题。
javascript中function fun1(){...} fun1(); 和function fun1(){...} var fun=new fun1();有什么区别,第一个是函数对象?第二个是object对象?如果区分函数对象是当函数用还是当对象用?每new一个函数对象,就成创建了一个对象,没有new的话就属于window的一个函数。这样理解对吗?

------解决方案--------------------
简单的这样理解是正确的。
但深入一点的话:
function fun1(){};
他即是普通函数,也可以做为创建实例的构造函数。构造函数就是创建实例的模板。
JScript code

function fun1(){};
function fun2(){ return 1};
typeof(fun1); // function
typeof(fun1()); // undefined
typeof(fun2()); // number
fun1还有一个隐性的东西,叫原型:prototype
fun1.prototype = {
    sayHi: function(){
        console.log(1);
    }
}

------解决方案--------------------
探讨
javascript中function fun1(){...} fun1(); 和function fun1(){...} var fun=new fun1();有什么区别,第一个是函数对象?第二个是object对象?如果区分函数对象是当函数用还是当对象用?每new一个函数对象,就成创建了一个对象,没有new的话就属于window的一个函数。这样理解对吗?