函数之间的延迟AND运算符为长格式

时间:2014-02-04 12:51:06

标签: javascript

我是关于javascript的新手,所以我无法理解这段代码。

markSelected: function (a) {
    a && (array.forEach(query(".menuNode", this.domNode), function (x) { domClass.remove(x, "menuySelectedNode"); }),
       (a = dom.byId("galleryNode_" + a.id)) && domClass.add(a, "menuSelectedNode"));
}

我写不出可理解的格式。我想分开以下代码:

(a = dom.byId("galleryNode_" + a.id)) && domClass.add(a, "menuSelectedNode"))
像这样:

markSelected: function (a) {
   if(a){
     // foreach....

     var node = dom.byId("galleryNode_" + a.id);
     if(node){domClass.add(a, "menuSelectedNode")}
   }
}

这一次,domClass.add(a,"menuSelectedNode")无效。但简而言之就是工作。

1 个答案:

答案 0 :(得分:1)

请务必先检查a

a && (/*stuff*/)

转换为:

if(a){
    /*stuff*/
}