在javascript中,函数的声明顺序和调用顺序的问题。

我有两个函数,一个在前面声明一个在后面声明,一个login(),一个get_user_info(),在login()里面会调用第二个函数:

       // 1.接口请求
     login(){  
       .....
        this.$http.post(Urls.users.login(), params).then((response) => {


          get_user_info()

        }).catch((response) => {

          }
        )

      },
      // 2.请求user信息
      get_user_info(){
         .....
      },
      

我们知道会报错,get_user_info方法未定义,那么请问下除了将get_user_info()声明到上面之外还有没有其他的方法呢? 我记得JavaScript中有一个变量提升的名词,不知道与这个有没有关系。

阅读 2.3k
3 个回答

具体报错能够提供一下吗?上述代码逻辑没有错误

// 这么试试呢?
login(){  
  ..
  var that = this
  that.$http.post(Urls.users.login(), params).then((response) => {
    ···
    that.get_user_info() 
    ···
  }).catch((response) => {
    
  })
},
// 2.请求user信息
get_user_info(){
   ...
},

函数声明和函数表达式了解一下 使用函数声明在哪调用都ok ,不过看你应该是把方法写在了一个表达式中,所以我觉得应该只能放前面 然后调用

var的变量提升也只是提升变量名而不是函数本身,即使提升执行时这个函数还是undefined,就将函数整体提到顶部

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题