javascript - 为什么 function(){}.__proto__ === Function.prototype 和 Function.prototype === function(){}.__proto_ 返回不同的结果

标签 javascript prototype

function(){}.__proto__ === Function.prototypeFunction.prototype === function(){}.__proto__ 得到不同的结果

Function.prototype === function(){}.__proto__ 返回 true

function(){}.__proto__ === Function.prototype 返回一个错误:

VM2053:1 Uncaught SyntaxError: Function statements require a function name

最佳答案

因为函数声明必须有一个名字,而函数表达式则没有。来自 Immediately invoked function expression 上的维基页面,如果该行以 function 开头:

when the parser encounters the function keyword, it treats it as a function declaration (statement), and not as a function expression.

关于javascript - 为什么 function(){}.__proto__ === Function.prototype 和 Function.prototype === function(){}.__proto_ 返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723700/

相关文章:

javascript - 如何使用php为两个不同用户显示两个主页

javascript - ExtJS - 如何获取组件项值

JavaScript继承: using __proto__ within constructor function,而不是构造函数的prototype属性

javascript - 在 JavaScript 中重新分配原型(prototype)

javascript - ajax jquery json 返回 500 内部服务器错误(未定义),但 webmethod 有效

javascript - Tampermonkey 脚本根据页面打开和呈现的方式给出不同的结果? (内容相同)

javascript - 解码 URL 中的非英文字母 (javascript)

javascript - 构造函数中设置的属性覆盖原型(prototype)上的属性

javascript - 构造函数属性 : __proto__. constructor vs prototype.constructor

javascript - isPrototypeOf 和 __proto__ 有不同的结果