js中Function 和function的区别

原文链接
首先先看一下Function的__proto__
我们需要牢记两点:
①__proto__和constructor属性是对象所独有的;
② prototype属性是函数所独有的,因为函数也是一种对象,所以函数也拥有__proto__和constructor属性。
__proto__属性的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会去它的__proto__属性所指向的那个对象(父对象)里找,
一直找,直到__proto__属性的终点null,再往上找就相当于在null上取值,会报错。通过__proto__属性将对象连接起来的这条链路即我们所谓的原型链。
prototype属性的作用就是让该函数所实例化的对象们都可以找到公用的属性和方法,即f1.proto === Foo.prototype。
constructor属性的含义就是指向该对象的构造函数,所有函数(此时看成对象了)最终的构造函数都指向Function。

下面转自GFG
JavaScript 中的函数允许我们执行一些操作、重要决策或计算,甚至使我们的网站更具交互性。我们大多数编码爱好者都知道函数是什么。但是我们知道函数声明和函数表达式有什么区别吗?本文让我们了解“函数声明”和“函数表达式”之间的区别。相似之处在于都使用关键字function,最显着的区别是函数声明有一个函数名,而后者没有。
函数声明:
1.函数声明也称为函数语句,使用 function 关键字声明函数。函数声明必须有函数名。
2.函数声明不需要变量赋值,因为它们是独立的构造,它们不能嵌套在功能块内。
3.这些在任何其他代码之前执行。
4.函数声明中的函数可以在函数定义之前和之后访问。
函数表达式:
1.函数表达式类似于没有函数名的函数声明。
2.函数表达式可以存储在变量赋值中。
3.函数表达式仅在程序解释器到达代码行时加载和执行。
4.函数声明中的函数只有在函数定义之后才能访问。

目前略懂一点点,别光看,f12控制台输出看一看,需要时间消化

posted @ 2022-02-14 23:01  rookiexwang  阅读(426)  评论(0编辑  收藏  举报