有什么方法可以在JavaScript中的initValidation()函数之外调用validate()函数?

我们希望在validate()之外调用该函数initValidation(),而不必调用initValidation()

以下是我们的问题代码-

function initValidation(){
   //无关的代码在这里
   function validate(_block){
      //代码在这里
   }
}

在JavaScript中,我们知道函数不过是对象,因此要实现这一点,我们可以像这样调整代码-

function initValidation(){
   //无关的代码在这里
   function validate(_block){
      //代码在这里
      console.log(_block);
   }
   this.validate = validate;
}

这种调整的作用是使我们的父函数现在代表一个类,其中validate是一个属性,我们可以像这样访问它-

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

以下是带有输出的完整代码-

示例

function initValidation(){
   //无关的代码在这里
   function validate(_block){
      //代码在这里
      console.log(_block);
   }
   this.validate = validate;
}
const v = new initValidation();
v.validate('Hello world');

输出结果

控制台中的输出将为-

Hello world