如何在 JavaScript 中在 initValidation() 函式之外呼叫 validate() 函式?


我們希望在 initValidation() 之外呼叫函式 validate(),而不必呼叫 initValidation()

以下是我們的問題程式碼 −

function initValidation(){
   // irrelevant code here
   function validate(_block){
      // code here
   }
}

在 JavaScript 中,眾所周知,函式只不過是物件,因此,為了實現這一目標,我們可以調整我們的程式碼如下 −

function initValidation(){
   // irrelevant code here
   function validate(_block){
      // code here
      console.log(_block);
   }
   this.validate = validate;
}

此調整的作用是使其父函式現在表示一個類,其中 validate 是一個屬性,我們可以像這樣訪問它 −

const v = new initValidation();
v.validate('Hello world');

以下是完整的帶輸出的程式碼 −

示例

function initValidation(){
   // irrelevant code here
   function validate(_block){
      // code here
      console.log(_block);
   }
   this.validate = validate;
}
const v = new initValidation();
v.validate('Hello world');

輸出

控制檯中的輸出應該是 −

Hello world

更新於: 2020-08-18

143 次瀏覽

開啟你的事業

完成課程,獲得認證

開始
廣告
© . All rights reserved.