我有一些代码:
var obj = {
foo : true,
bar : (function() {
if (obj.foo) {
return qux;
}
})()
};
我的问题是
qux
永远不会返回,因为obj
执行时bar
不存在,因为bar
是立即调用的函数。有一个解决方案:
var obj = {
foo : true
};
obj.bar = (function() {
if (obj.foo) {
return qux;
}
})();
但是我发现以前的代码更直接。有没有办法做到这一点,或者我坚持后者?
提前致谢。
最佳答案
有没有办法做到这一点,或者我坚持后者?
假设qux
不是IIFE的局部变量,则可以使用它(不过,仍然需要拆分对象声明):
var obj = {
foo : true
};
obj.bar = obj.foo ? qux : undefined;