什么“if(<name of =”“a =”“function =”“>)”是什么意思?</name>

时间:2014-02-24 01:19:01

标签: javascript

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(谓词&amp;&amp;!谓词(v))”返回了什么?什么时候会返回true / false?

3 个答案:

答案 0 :(得分:0)

如果未定义则为False,否则为true

答案 1 :(得分:0)

我有一段时间没有完成javascript,所以你必须忍受我,但如果我没记错,所有函数都只是变量,所以说if(predicate)只是意味着谓词是定义的。在此范围内,它表示是否为参数提供了值(函数)。

所以基本上if (predicate && !predicate(v))在调用之前首先检查函数是否存在,因为它们不想调用不存在的函数

答案 2 :(得分:0)

语句if (predicate && !predicate(v))评估谓词和谓词(v)的反义词是否true

predicate!predicate(v)等于 null false 以外的任何内容都是如此, undefined 0 NaN 或空字符串。

相关问题