你能解释一下为什么Validator.js会以它的方式启动(参见第一个代码片段)以及为什么我无法调用prototyped方法validate(第二个片段)
我目前正在使用validator.js(github/validator.js)
代码开头如下:
( function ( exports ) {
var Validator = function ( options ) {
this.__class__ = 'Validator';
this.__version__ = '@@version';
this.options = options || {};
this.bindingKey = this.options.bindingKey || '_validatorjsConstraint';
return this;
};
Validator.prototype = {
constructor: Validator,
validate: function ( objectOrString, AssertsOrConstraintOrGroup, group ) {
if ( 'string' !== typeof objectOrString && 'object' !== typeof objectOrString )
throw new Error( 'You must validate an object or a string' );
......
然而,我无法在我的node.js代码中调用validate方法,如下所示:
var Validator = require('./static/vendor/parsley/validator.js'),
Assert = Validator.Assert,
Constraint = Validator.Constraint;
Validator.Validator().validate( 'foo', new Assert().Length( { min: 4 } ) );
谢谢你, 巴拉迪
答案 0 :(得分:1)
要创建一个实例(将继承原型),您需要使用new
keyword:
new Validator.Validator().validate( 'foo', new Assert().Length( { min: 4 } ) );
另外,从构造函数中你不需要return this
。那也会暗示这个错误。