let obj = {
active: false,
name: 'A',
type: 'letter',
subObj: {
checked: active ? 'yes' : 'no'
}
}
用对象obj中的active值来决定 对象obj中子对象subObj中checked 的值, 这样写会报 'active' undefined?
会有一个函数方法 动态改变obj中的active的值, 所以想要在改变active的时候, subObj中的checked也跟着改变, 要怎么写判断比较简洁呢?
构造子级对象属性时确实不能直接拿到父级对象的属性。不过像这种对象字面量写法,值都已经确认了,直接把计算后的值给出来就好了。
虽然不能构造子级对象的属性,但是由于这个子级对象是父组对象的属性,直接构造这个对象是可以的。比如下面这个例子:
当然,对于结构相对复杂的情况,建议还是用 create 函数来构造比较好:
或者干脆直接写类
或者如果需要先构建对象,再来完善对象属性(包括子对象之类的),可以使用 validate 函数来验证和修正,比如