为什么在JavaScript中this.name返回为未定义?

为什么在JavaScript中this.name返回为未定义?,javascript,Javascript,当我调用这个函数时,Google Chrome控制台返回的不是“Stack Overflow”这个名称,而是“undefined” 为什么会有这种行为?正如我所读到的,这个关键字总是引用当前执行上下文,那么为什么它不返回名称?您没有将名称添加到此对象: 函数返回名{ this.name='堆栈溢出' console.logthis.name } 如果要创建变量并将其记录在returnName中,则不需要: 函数返回名{ 变量名称='堆栈溢出' console.logname } 因为这不是它的工

当我调用这个函数时,Google Chrome控制台返回的不是“Stack Overflow”这个名称,而是“undefined”

为什么会有这种行为?正如我所读到的,这个关键字总是引用当前执行上下文,那么为什么它不返回名称?

您没有将名称添加到此对象:

函数返回名{ this.name='堆栈溢出' console.logthis.name } 如果要创建变量并将其记录在returnName中,则不需要:

函数返回名{ 变量名称='堆栈溢出' console.logname } 因为这不是它的工作原理。console.logname有效。此===窗口对象位于您的函数范围之上,并且不包含其上的字段名
function returnName() {
    var name = 'Stack Overflow'
    console.log(this.name)
}