Javascript 作为参数的布尔测试

Javascript 作为参数的布尔测试,javascript,function,boolean,conditional-statements,Javascript,Function,Boolean,Conditional Statements,我想要像这样的东西 let condition = function(name, cond) { this.name = name; this.func = (prop) => { if (cond) { return true; } return false; } let snow = new condition("temperature", prop < 0); let condition=函数(名称、条件){ this.name=名

我想要像这样的东西

let condition = function(name, cond) {
this.name = name;
this.func = (prop) => {
    if (cond) { 
        return true;
    }
    return false;
}

let snow = new condition("temperature", prop < 0);
let condition=函数(名称、条件){
this.name=名称;
this.func=(prop)=>{
如果(cond){
返回true;
}
返回false;
}
让雪=新条件(“温度”,prop<0);

我在一个单独的文件夹中有一个温度值,还有一个函数检查
condition.func
是否返回true或false。例如,如果温度低于0,它就不能下雪,这意味着我将调用
condition.func(temperature)
,如果(temperature<0){return true},这将执行代码

问题是,当我定义雪时,它会抛出未定义道具的错误…

我理解这是因为我想覆盖一个甚至没有初始化的变量,但我不知道如何实现布尔测试作为函数的参数,你需要将一个
函数
箭头函数
和一个输入参数传递给你的
条件
,它将存储在
cond
然后,当您调用
func
时,将一个参数传递到func中,并使用
cond
引用调用您的
cond函数
,使用该给定参数,如
cond(prop)
。此外,您还可以简化
func
函数并仅引用
cond

let condition=函数(名称、条件){
this.name=名称;
this.func=cond;
};
让雪=新条件(“温度”,prop=>prop<0);
if(雪函数(-2)){
console.log(`Snowing`);

}
您需要将带有输入参数的
函数
箭头函数
传递给您的
条件
,它将存储在
cond
属性中。然后,当您调用
func
时,将一个参数传递给func,并使用
cond
引用调用您的
cond函数
t给定参数,如
cond(prop)
。您还可以简化
func
函数,并仅参考
cond

let condition=函数(名称、条件){
this.name=名称;
this.func=cond;
};
让雪=新条件(“温度”,prop=>prop<0);
if(雪函数(-2)){
console.log(`Snowing`);

}
您可以只移交函数,而不需要中间函数。对于条件,您需要一个函数,如
p=>p<0
,而不仅仅是一个条件,如
prop<0
。这只适用于硬编码或作为字符串,而不是作为参数

功能条件(名称、条件){
this.name=name
this.func=cond
}
让雪=新条件(“温度”,p=>p<0);
控制台日志(snow.func(5));

console.log(snow.func(-5));
您可以只移交函数,而不需要中间函数。对于条件,您需要一个函数,如
p=>p<0
,而不仅仅是一个条件,如
prop<0
。这只适用于硬编码或作为字符串,而不是作为参数

功能条件(名称、条件){
this.name=name
this.func=cond
}
让雪=新条件(“温度”,p=>p<0);
控制台日志(snow.func(5));

console.log(snow.func(-5));
您需要一种方法来检查该值是否符合您的条件。有关可能的解决方案,请参阅下文

let condition=函数(名称、谓词){
this.name=名称
//func将采用单个值,即要检查的值
this.func=(prop)=>{
//使用提供的值执行谓词方法。
返回谓词(prop);
}
}
/**
*此方法将检查您的条件,它将单个值作为参数
*/
函数谓词(值){
//它只能在值小于0时下雪。
返回值(值<0);
}
//设置雪的条件,通过谓词方法作为检查。
让雪=新条件(“温度”,雪)
//检查10度和-1度时是否会下雪。
控制台日志(snow.func(10));

console.log(snow.func(-1));
您需要一种方法来检查该值是否符合您的条件。有关可能的解决方案,请参阅下文

let condition=函数(名称、谓词){
this.name=name
//func将采用单个值,即要检查的值
this.func=(prop)=>{
//使用提供的值执行谓词方法。
返回谓词(prop);
}
}
/**
*此方法将检查您的条件,它将单个值作为参数
*/
函数谓词(值){
//它只能在值小于0时下雪。
返回值(值<0);
}
//设置雪的条件,通过谓词方法作为检查。
让雪=新条件(“温度”,雪)
//检查10度和-1度时是否会下雪。
控制台日志(snow.func(10));

console.log(snow.func(-1));
我从未见过没有()=>{}的arrow函数,你能解释什么是prop=>prop<0吗?我从未见过没有()=>{}的arrow函数,你能解释什么是prop=>prop<0吗?