Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象内部的If/else条件_Javascript - Fatal编程技术网

Javascript 对象内部的If/else条件

Javascript 对象内部的If/else条件,javascript,Javascript,我得到一个错误,说在对象函数验证器(formIsValid)中找不到函数enforceLabelHasText在开始时将其绑定到一个变量 AddPatient.Firstname = FirstNameValue || Validator.enforceLabelHasText(FirstName); 这会保持这种变化,并指向其他方面。 使用萤火虫 这是无效的语法 您在对象定义中转储了if/else条件,如下所示: var that = this; 像这样的过程代码必须在函数中。不能将

我得到一个错误,说在对象函数验证器(formIsValid)中找不到函数enforceLabelHasText

在开始时将其绑定到一个变量

AddPatient.Firstname = FirstNameValue || Validator.enforceLabelHasText(FirstName);  
这会保持这种变化,并指向其他方面。
使用萤火虫

这是无效的语法

您在对象定义中转储了
if/else
条件,如下所示:

var that = this; 

像这样的过程代码必须在函数中。

不能将表达式放入对象定义中。如果希望在创建对象实例后执行代码,应使用:

var myObj = { a, b, c, d, 
  if (true) {
     alert('WTF!');
  }
};
函数验证器(){
如果(此。formIsValid){
警报('表单有效!');
}
否则{
警报('表单无效…');
} 
}
Validator.prototype={//注意这里的.prototype,这很重要!
福米斯瓦利德:是的,
enforceTextFieldMinLength:函数(字段,minLength){
如果(!field.value | | field.value.length
这是一个虚拟的解决方案;您需要将参数添加到
Validator()
函数中,以初始化
formIsValid
和其他值。我建议你读一读


编辑:如果使用原型解决方案,则在将
val
设置为全局变量后(通过省略
var
或使用
var window.val=new Validator()
),需要调用
val.enforceLabelHasText(FirstName)
).

验证程序是一个对象文本,您只能在其中分配属性,不能分配任意代码


您可以将包含代码的函数分配给属性。

您可以使用。像这样,

const testable=1
常量对象={
a:‘值1’,
b:(()=>{
如果(可测试===1){
返回“可测试为1”
}否则{
返回“可测试不是1”
}
})()
}

log(obj)
这不是空指针问题;这只是一个语法错误。@Gabi Purcaru:当我将所有这些内容都包含到一个文件中时,Valdiator是一个未定义的错误。@John Cooper,这是一个拼写错误;我拼写的是
Valdiator
,而不是
Validator
。现在应该可以了。@Gabi这是使用代码创建对象的唯一方法,该代码以对象文本的构造函数形式运行吗?您可以在对象定义之后编写代码,如下所示:
var Validator={…};如果(Validator.formIsValid){…}
@Gabi Purcaru:我如何从我的其他JS代码调用强制函数。。。注意:所有这些Valdiator代码都在Val.js
const obj={a:'value1',b:checkTestable()}
中,在没有生命的情况下可以完成同样的事情,但我不认为这是OP真正想要的(我不认为他真的仔细考虑了他试图做的事情。)谢谢。我把这个换成了开关。效果很好。
var myObj = { a, b, c, d, 
  if (true) {
     alert('WTF!');
  }
};
function Validator() {
    if(this.formIsValid) {
        alert('Form is valid!');
    }
    else {
        alert('Form is invalid...');
    } 
}
Validator.prototype = { // Notice the .prototype here, it's important!

  formIsValid: true, 

  enforceTextFieldMinLength: function(field, minLength) {
      if (!field.value || field.value.length < minLength) {
            this.formIsValid = false;
      }   
  },

  enforceLabelHasText: function(label) {
        if (!label.text) {
            this.formIsValid = false;
        }
  }
}
var a = new Validator();