javascript - 为什么javascript中的window对象没有这个键但也有控制台?

标签 javascript node.js

var varFunc = function declareFunc() {
  console.log(this); // window
  console.log(this.declareFunc); // undefined
  console.log(declareFunc); // function body
}
console.log(this) // window
varFunc();

我知道thisfunction方向window ,但是window没有 Prop declareFunc ,但是,最后这段代码仍然控制台 [Function: declareFunc]为什么?

如果我使用 Function.name :

var varFunc = function declareFunc() {
  console.log(this); // window
  console.log(declareFunc.name) // "declareFunc"
  console.log(varFunc.name); // "declareFunc". but why?
  console.log(this.declareFunc); // undefined
  console.log(declareFunc); // function body
}
console.log(varFunc.name) // "declareFunc". why?
var aa = function (){}
console.log(aa.name) // "aa"
console.log(this) // window
varFunc();

最佳答案

var varFunc = function declareFunc() {
  console.log(varFunc===declareFunc);//true
}

此函数现在有两个名称:外部的 varFunc 和内部的 declareFunc,因此在其内部,您可以访问 declareFunc、varFunc 和 window.varFunc em> 和外部:

console.log(varFunc,declareFunc);//function, undefined/error

关于javascript - 为什么javascript中的window对象没有这个键但也有控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44904544/

相关文章:

javascript - 是否可以在 JSON 中嵌入 youtube 代码?

javascript - 如果登录,Google Auth 不会显示弹出窗口

ajax - backbone.js 的跨域 CORS 支持

mysql - 哪个数据库引擎最适合 node.js 应用程序?

javascript - map 功能错误: Cannot read property 'map' of undefined in Reactjs

javascript - 按类名将元素放入数组中并使用 Javascript 提醒它

javascript - Chart.js 中的多行标题不起作用

android - Nodejs 是否可以通过 Web 应用程序读取已连接设备的系统日志?

node.js - 添加多个占位符时快速路由不起作用

javascript - 如何防止 socket.io 顺序/自动发出事件?