簡體   English   中英

Java一個接一個的方法調用

[英]Javascript One after another method call

我想對__NodeJS Rest API__進行JavaScript驗證,但是我的問題是;

驗證者類別

class Checks {

 constructor() {

 }

 object(field) {
  return field;
 }

 keys(field) {
   if(typeof field === "string") {
    return true;
   }
  return false;
 }

}

module.exports = Validator;

我想用

Validator.validate(field).string()

但錯誤代碼:

您可以將field分配為當前實例的屬性,然后為鏈接方法返回this

class Validator {

 constructor() {
   this.field = null;
 }

 validate(field) {
   this.field = field;
   return this;
 }

 string(field) {
   return typeof this.field === "string";
 }

}

module.exports = Validator;

//usage
const Validator = require('path/to/Validator');
new Validator().validate(field).string();

您可以像這樣更改

class Validator {

 constructor() {

 }


 validate(field) {
   if(typeof field === "string") {
    return true;
   }
  return false;
 }

}

module.exports = Validator;

打個電話,

Validator.validate(field)

或者只是將validate函數更改為

validate() {
  return this;
 }

然后這樣稱呼它,

Validator.validate().string(field)
//validator-factory.js

class ValidatorFactory {

  static validate(field) {
    return new Validator(field);
  }

}

class Validator {

 constructor(field) {
   this.field = field;
 }

 string() {
   if(typeof this.field === "string") {
    return true;
   }
  return false;
 }

}

module.exports = ValidatorFactory;

然后,導入ValidatorFactory並按以下方式使用

var ValidatorFactory = require('./validator-factory');
ValidatorFactory.validate(field).string();

請注意,在ValidatorFactory使用static關鍵字,並且validate每次都會返回Validator類的新實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM