鍍金池/ 問答/HTML/ 在javascript中,函數(shù)的聲明順序和調(diào)用順序的問題。

在javascript中,函數(shù)的聲明順序和調(diào)用順序的問題。

我有兩個函數(shù),一個在前面聲明一個在后面聲明,一個login(),一個get_user_info(),在login()里面會調(diào)用第二個函數(shù):

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


          get_user_info()

        }).catch((response) => {

          }
        )

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

我們知道會報(bào)錯,get_user_info方法未定義,那么請問下除了將get_user_info()聲明到上面之外還有沒有其他的方法呢? 我記得JavaScript中有一個變量提升的名詞,不知道與這個有沒有關(guān)系。

回答
編輯回答
糖豆豆

var的變量提升也只是提升變量名而不是函數(shù)本身,即使提升執(zhí)行時這個函數(shù)還是undefined,就將函數(shù)整體提到頂部

2017年10月11日 09:17
編輯回答
檸檬藍(lán)

具體報(bào)錯能夠提供一下嗎?上述代碼邏輯沒有錯誤

// 這么試試呢?
login(){  
  ..
  var that = this
  that.$http.post(Urls.users.login(), params).then((response) => {
    ···
    that.get_user_info() 
    ···
  }).catch((response) => {
    
  })
},
// 2.請求user信息
get_user_info(){
   ...
},
2017年8月23日 02:50
編輯回答
赱丅呿

函數(shù)聲明和函數(shù)表達(dá)式了解一下 使用函數(shù)聲明在哪調(diào)用都o(jì)k ,不過看你應(yīng)該是把方法寫在了一個表達(dá)式中,所以我覺得應(yīng)該只能放前面 然后調(diào)用

2018年3月15日 08:39