这个嵌入式三元执行的世界是什么?

时间:2014-01-15 19:14:24

标签: javascript jquery ternary

我从供应商那里继承了一些绝对令人难以置信的代码,并且在Javascript的相对新手和写的这种糟糕的方式之间,我已经设法用这个代码应该意味着我的整个办公室。有人可以通过将以下内容重写为嵌入式IF语句或更具可读性的内容来帮助我,这样我可以稍微修改一下代码流吗?

a("label.iClass").click(function () {
        !0 == clickEnabled && (clickEnabled = !1, a(this).hasClass("iT_radio") 
        ? a(this).hasClass("iTon") 
          ? clickEnabled = !0 
          : e(a(this), !0) 
        : e(a(this)));

        return !1;
}

clickEnabled是供应商提供的自定义对象的属性。它是一个布尔值,最初定义为!0。不,我不知道为什么他们决定否定整数比使用布尔值更好。

抛出最大循环的两个部分是在变量赋值之前的二进制AND,并且在赋值进入另一个函数调用之后直接放置逗号。关于这可能意味着什么的任何意见也将受到最高的赞赏。

2 个答案:

答案 0 :(得分:3)

a("label.iClass").click(function () {
    if (clickEnabled == true) {
        clickEnabled = false;
        if (a(this).hasClass("iT_radio"))
            if (a(this).hasClass("iTon"))
                clickEnabled = true;
            else 
                e(a(this), true);
        else 
            e(a(this)));
    }
    return false;
});

其中a可能是jQuery函数,e是代码中的其他函数。

答案 1 :(得分:0)

!0 == clickEnabled && (clickEnabled = !1

部分似乎在说:如果clickEnabled,请禁用点击 - 阻止双击,可能。

, a(this).hasClass("iT_radio") 

逗号应该被解释为一个列表,所以设置clickEnabled == false,它将执行下一个检查iT_radio存在的部分。

? a(this).hasClass("iTon") 

如果存在iT_radio,则检查是否存在iTon。

? clickEnabled = !0 

如果iT_radio和iTon存在,请重新启用单击

: e(a(this), !0)

如果存在iT_radio,但iTon不是e(a(this),true)。我不知道jquery,所以不确定e函数是什么。

: e(a(this)));

如果没有iT_radio,请执行此操作e(a(this))。再一次不知道函数e的目的。