我正在学习JS,并遇到了Javascript的概念。我还了解了两种创建函数的方法
//anonymous
var fun1=function()
{
}
//named
function fun2()
{
}
我在网上搜索后发现了一些重要的区别,例如:
1.我们可以在命名函数声明之前调用命名函数,而在匿名的情况下则不可能。
2. fun1()在运行时定义,而另一个的分配将在解析时定义
现在我的问题是,为什么fun1()的原型指向对象,而fun2的原型指向自身?我做了很多尝试来理解这一点,但是并没有正确地理解它。
另外,在什么情况下我们应该使用哪种类型的功能?
最佳答案
现在我的问题是为什么fun1()的原型指向对象
不是。它指向一个对象。展开它,您会发现它是一个普通的原型对象,而不是Object
构造函数。
fun2的原型是否指向自身?
不是。它也指向普通的原型对象。唯一的区别是fun2
是命名函数,因此您的控制台会将具有.constructor == fun2
的所有内容显示为“一个fun2
对象”。