繁体   English   中英

“如果( <name of a function> )“ 意思?

[英]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)等于nullfalseundefined0NaN或空字符串之外的其他null ,这将是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM