如果条件有效,对象内部如何?

How does Object inside if condition works?

我见过有人用这个

            hideTooltip : function() {
               var toolRef = 'population_tooltip';
               if(Helper.tooltipObj[toolRef]){
                  Helper.tooltipObj[toolRef].hide();
               }
           }

Helper.tooltipObj[toolRef]是一个对象。我想知道它是如何工作的?你能在Javascript(我们使用的是AUI API)的IF条件下放置一个对象吗?

当有人点击页面上弹出窗口的按钮时调用该函数(不是 javascript 警报类型弹出窗口,有点 select 一些东西然后按 OK 弹出窗口)

if (expr) - 任何表达式都有效。如果它的计算结果为 "an object",则为真,因为 all 对象在此上下文中的计算结果为 'true expression'。对于 undefined, null, false, "", 0, and NaN.

,表达式仅被认为是 'false-y'

因此,只有当 "an object"(希望使用上述方法)被分配给 属性 时,条件才会运行 - 如果之前没有分配任何值,它将评估为未定义。

此逻辑假定任何其他 'true'(甚至 'false')值都是先前的编程 error/contract 漏洞,并且是相当常见的习惯用法。


另请参阅:

  • Is there a standard function to check for null, undefined, or blank variables in JavaScript?
  • All falsey values in JavaScript