zoukankan      html  css  js  c++  java
  • JavaScript中匿名函数this指向问题

    this对象是在运行时基于函数执行环境绑定的,在全局函数中,this=window,在函数被作为某个对象的方法调用时,this等于这个对象。

    但是匿名函数的执行环境是全局性的,所以匿名函数的this指向是window

        var name = 'window'
        var person = {
            name :'Alan',
            sayName:function () {
                return function () {
                    console.log(this.name)
                }
            }
        }
        person.sayName()()  // window 

    这里sayName方法return了一个匿名函数,这个匿名函数中this指向window

    解决方法还是有的,我们可以把外部作用域的this传递给匿名函数

        var name = 'window'
        var person = {
            name :'Alan',
            sayName:function () {
                var that = this
                return function () {
                    console.log(that.name)
                }
            }
        }
        person.sayName()()  // Alan
  • 相关阅读:
    运算放大器
    阻抗模型
    mysql优化
    tomcat调优
    jvm调优
    springboot使用
    deploy工程到nexus
    Spring data elasticsearch使用
    kibana使用
    笔记
  • 原文地址:https://www.cnblogs.com/showcase/p/10498790.html
Copyright © 2011-2022 走看看