繁体   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