Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么javascript中的窗口对象既没有这个键,又有控制台?_Javascript_Node.js - Fatal编程技术网

为什么javascript中的窗口对象既没有这个键,又有控制台?

为什么javascript中的窗口对象既没有这个键,又有控制台?,javascript,node.js,Javascript,Node.js,我知道这个在函数指向窗口的方向,但是窗口没有道具declareFunc,但是,最后这个代码还是控制台[函数:declareFunc]为什么 如果我使用: 此函数现在有两个名称:外部为varFunc和内部为declareFunc,因此在其内部,您可以访问declareFunc、varFunc和window.varFunc,外部为: var varFunc = function declareFunc() { console.log(varFunc===declareFunc);//true }

我知道
这个
函数
指向
窗口的方向
,但是
窗口
没有道具
declareFunc
,但是,最后这个代码还是控制台
[函数:declareFunc]
为什么

如果我使用:

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

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

我不理解你的标题或问题,但我能说的是,
var varFunc=function declareFunc(){}
是错误的。您希望使用
var varFunc=function(){}
function declareFunc(){}
,而不是混合使用。@JeremyThille这是您在使用
require
时基本上要做的,例如,问题是命名函数表达式的作用域。在它里面,
window.varFunc
是我在浏览器中运行时的一个函数,但
window
在节点中未定义。@borkes用全局替换window。原则是一样的
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
}
console.log(varFunc,declareFunc);//function, undefined/error