有一种运算符 逻辑赋值运算符 ??=
但是只能2层有效(a.b 确保a存在的时候),3层就不行了(比如a.b.c 可能b就不存在,用就会报错),而且这个还不能配合?.来用(比如 a?.b?.c ??= 1 这样是不行的),所以目前看你那个写法应该就只能这样写了 
有兴趣可以参考下,可能其他地方可以用得到:
https://es6.ruanyifeng.com/?search=%3F%3F&x=0&y=0#docs/operator
有一种运算符 逻辑赋值运算符 ??=
但是只能2层有效(a.b 确保a存在的时候),3层就不行了(比如a.b.c 可能b就不存在,用就会报错),而且这个还不能配合?.来用(比如 a?.b?.c ??= 1 这样是不行的),所以目前看你那个写法应该就只能这样写了 
有兴趣可以参考下,可能其他地方可以用得到:
https://es6.ruanyifeng.com/?search=%3F%3F&x=0&y=0#docs/operator
好好干,升职加薪,当上管理层,开掉写这种代码的员工,就没有这个问题了
你这问题不就是:假如我有一把钥匙 并且这个钥匙能打开富婆的门 并且 富婆正在洗澡

ES11新特性 可选链操作
data?.exitfunc?.onclear
if(data?.exitfunc?.onclear){
// dosomething…
}