如果语句Javascript清理

时间:2014-02-03 22:06:56

标签: javascript code-cleanup

我确实有jQuery但不介意使用它,但这里是我要清理的代码:

if (parent.uglyChild.uglyChild.uglyChild.uglyChild.data == null) {
    parent.uglyChild.uglyChild.uglyChild.uglyChild.data = new app.newData();
}

我知道如何清理它的唯一方法是:

var data = parent.uglyChild.uglyChild.uglyChild.uglyChild.data;
if (data == null) { data = new app.newData()}

我一直想知道是否有办法做某事:

parent.uglyChild.data = parent.uglyChild.data.isNull ? return : new app.newData();

我迫不及待地想看到你们知道的速记技巧! :)

3 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
var ugly = parent.uglyChild.uglyChild.uglyChild.uglyChild;
ugly.data == null && (ugly.data = value)

答案 1 :(得分:1)

你可以缓存最近的对象以避免重复,这要归功于JS的漏洞分配:

if ( (x=parent.uglyChild.uglyChild.uglyChild.uglyChild).data == null) {
   x.data = value;
}

答案 2 :(得分:0)

如果您想使用三元运算符,您可以随时重新分配值。

parent.uglyChild.data = (parent.uglyChild.data == null) ? null : value;