Discuss / JavaScript / 有个问题

有个问题

Topic source
$.fn.highlight2 = function (options) {
    // 要考虑到各种情况:
    // options为undefined
    // options只有部分key
    var bgcolor = options && options.backgroundColor || '#fffceb';
    var color = options && options.color || '#d85030';
    this.css('backgroundColor', bgcolor).css('color', color);
    return this;
}

这代码里赋值的时候,如options && options.color里前面的option可以省略吗?写成var color = options.color || '#d85030';

同问,实在不懂。

风雾15151

#3 Created at ... [Delete] [Delete and Lock User]

因为"||"和"&&"都遵循“短路”原理,当options不存在时,"&&"会短路掉options.backgroundColor,就不会出现undefined.backgroundColor这种错误情况。


  • 1

Reply