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吗?