原型如是:
a = {
b:{
......
}
}
现在我们不能确定b中状态,但却要修改b中的成员p的值。如果使用传统方法我们可以这样做:
if(!a.b){
a.b={
p:'i am p'
}
}else{
a.b['p'] = 'i am p'
}
通过上面的代码我们可以做两件事:第一,检测a中有没有,如果没有就创建。第二,如果a.b是存在的那我们要更新a.b.p的值。那么有没有更简便的写法呢?答案是有的:
( a.b = a.b || {} )['p'] = 'i am p'
如果你不知道这句话为什么等同于前面第二段代码,那建议你弄清楚 = 的运算过程。=是赋值运算,过程是将=右边的内容赋给左边。表达式返回值也等于=号的右边。
正在加载
