【问题标题】:Short syntax for if (!obj.prop) obj.prop = valif (!obj.prop) obj.prop = val 的简短语法
【发布时间】:2011-08-24 09:10:23
【问题描述】:

是否有任何简短的语法或技巧可以编写如下代码?

if (!obj.prop) {
    obj.prop = value;
}

【问题讨论】:

  • 你也可以写成一行:if (!obj.prop) obj.prop = value; 你不能避免写两次obj.prop,如果那是你所追求的。

标签: javascript coding-style


【解决方案1】:

也许

obj.prop = obj.prop || value;

但请注意,如果 obj.prop 是一个虚假值,它将被设置为 value

也许你想测试一下是否为obj定义了属性

if (obj.prop === undefined) obj.prop = value;

【讨论】:

    【解决方案2】:

    试试:

    obj.prop = obj.prop || value;
    

    【讨论】:

      【解决方案3】:
        obj.prop = obj.prop? obj.prop : value
      

      【讨论】:

        【解决方案4】:

        你可以把它变成一个函数,然后你需要写这个if一次,每次你需要这个代码时调用这个函数。

        【讨论】:

        • 你能写一个示例函数来演示一下吗?
        • @Russ:例如,如果它总是相同的'prop',那么你可以这样做:function f(obj) {if (!obj.prop) obj.prop = value;}
        猜你喜欢
        • 2023-03-18
        • 1970-01-01
        • 2011-05-26
        • 1970-01-01
        • 2016-03-29
        相关资源
        最近更新 更多