Computer >> Máy Tính >  >> Lập trình >> Javascript

Có cách nào tôi có thể gọi hàm validate () bên ngoài hàm initValidation () trong JavaScript không?

Chúng tôi muốn gọi hàm validate () bên ngoài initValidation (), mà không nhất thiết phải có tocall initValidation ()

Sau đây là mã sự cố của chúng tôi -

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

Trong JavaScript, như chúng ta biết rằng các hàm không là gì ngoài các đối tượng, vì vậy để đạt được điều này, chúng ta không thể chỉnh sửa mã của mình như thế này -

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

Điều chỉnh này làm là nó làm cho chức năng cha của chúng ta đại diện cho một lớp ngay bây giờ, trong đóvalidate là một thuộc tính và chúng ta có thể truy cập nó như thế này -

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

Sau đây là mã hoàn chỉnh với đầu ra -

Ví dụ

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

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

Hello world