javascript中命名和匿名函数的原型结构之间的区别?

时间:2014-03-16 10:23:23

标签: javascript

我正在学习JS,并且遇到了Javascript的概念。我还学习了两种不同的创建函数的方法

//anonymous
    var fun1=function()
    {
    }

//named 
    function fun2()
    {
    }

我搜索了网络,发现了一些重要的差异,如: 1.我们可以在声明之前调用命名函数,而在匿名情况下则不可能。
2. fun1()在运行时定义,而另一个的分配将在分析时定义

现在我的问题是为什么fun1()的原型指向Object而fun2的原型指向自身?我试了很多东西来理解这一点,但没有正确理解。

enter image description here

我们应该在什么情况下使用什么类型的功能?

1 个答案:

答案 0 :(得分:3)

  

现在我的问题是为什么fun1()的原型指向Object

不是。它指向一个对象。展开它,你会发现它是一个普通的原型对象,而不是Object构造函数。

  

fun2的原型指向自己?

不是。它也指向一个普通的原型对象。唯一的区别是fun2是一个命名函数,因此您的控制台将显示.constructor == fun2为" 一个fun2对象&#的所有内容34。