[英]what does “if (<name of a function>)” mean?
function addPrivateProperty(o,name,predicate){
var value;
o["get"+name]=function(){return value;};
o["set"+name]=function(v){
if (predicate && !predicate(v))
throw Error("set"+name+": invalid value "+v);
else
value=v;
};
}
var o={};
addPrivateProperty(o,"Name",function(x){return typeof x=="string";});
在这里,“ if(谓词&&!predicate(v))”返回什么? 什么时候返回true / false?
如果未定义则为False,否则为true
我已经有一段时间没有用JavaScript了,所以您必须忍受我,但是如果我没记错的话,所有函数都是变量,所以说if(predicate)
只是意味着是否定义了谓词。 在此范围内,表示是否向参数提供了值(功能)。
因此本质上if (predicate && !predicate(v))
首先在调用函数之前先检查该函数是否存在,因为他们不想调用不存在的函数
语句if (predicate && !predicate(v))
评估谓词和predicate(v)的对立是否均为true
。
对于predicate
或!predicate(v)
等于null
, false
, undefined
, 0
, NaN
或空字符串之外的其他null
,这将是正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.