var varFunc = function declareFunc() {
console.log(this); // window
console.log(this.declareFunc); // undefined
console.log(declareFunc); // function body
}
console.log(this) // window
varFunc();
我知道this
在function
方向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/