我正在尝试制作一个具有属性和函数的模块,它可以像验证器对象一样使用,它可以验证内部的所有对象,如果验证器成功,则返回 true 的有效方法。
所以我做这个文件
function Machine(params)
{
// this is the constructor
if(params){
var pub=params;
return this.init(pub);
}
this.obj_params = 'null';
this.valid = 'Not Valid';
};
Publicacion.prototype.init = function(objConfig){
console.info('Init Success!')
this.buildMachine(objConfig);
return true
};
Publicacion.prototype.buildPublish = function(objConfig){
console.info('Builded!');
//this.valid='success'; // when uncommited, the object this.valid appears
return true;
};
module.exports=Machine;
这是控制台
> var Machine=require('./Machine')
> undefined
> var machinegun=new Machine();
> Init Success!
> Builded!
> undefined
> machinegun.valid
> undefined
两个问题:
- 当我尝试访问“machinegun.valid”时,这会给我一个未定义的
- 当我使用 build 方法定义 valid 时,会出现 var valid。
为什么构造函数一开始没有定义有效变量?为什么build方法可以定义有效变量???
我不明白javascript如何与类一起工作......
谢谢大家!