Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptのinitValidation()関数の外でvalidate()関数を呼び出す方法はありますか?


必ずしもinitValidation()を呼び出す必要なしに、initValidation()の外部で関数validate()を呼び出したい

以下は問題コードです-

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

  1. JavaScriptエラーを拡張できますか?そうするための最良の方法は何ですか?

    JavaScriptエラーは、エラークラスを拡張することで拡張できます。これを行う最良の方法は、組み込みのJavaScriptエラークラスを拡張する新しいカスタムエラークラスを作成することです。 以下は、JavaScriptでエラーを拡張するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=de

  2. HTMLファイルがソースモジュールからJavaScript関数を見つけられないのはなぜですか?

    これは、「export」ステートメントを使用していない場合に発生する可能性があります。スクリプトファイルにインポートされる関数の前に「エクスポート」を使用します。 JavaScriptファイルは次のとおりで、emo.jsという名前のファイルがあります。 demo.js console.log("function will import"); export function test(){    console.log("Imported!!!"); } 上記の関数をインポートする「index.html」ファイルは次のとおりで