为什么嵌套函数不继承呢?

时间:2019-04-14 23:28:31

标签: javascript events this

  const styleBackground = function () {
  console.log('ok')
  console.log(this)
}
const showDropdown = function () {
  console.log(this)
  styleBackground()
}
navItems.forEach(function (navItem) {
  navItem.addEventListener("mouseenter", showDropdown)
})

console screen

你好有人可以解释一下为什么嵌套函数中的窗口是元素而不是元素吗?

嵌套函数对在showDropdown(函数内部的函数)中调用的styleBackground()是否正确命名?

将其传达给函数内部的最佳选择是什么? styleBackground(this)吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

如果要专门设置“ this”值https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

,请阅读“ bind”方法

基本上,上下文是在某些情况下推断的,但会回退到窗口。

或者使用箭头函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#No_separate_this保留上下文。