如果条件有效,对象内部如何?
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
我见过有人用这个
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.
因此,只有当 "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