我有这个功能
const obj = {
key1: 0.1,
key2: (function(){return this.key1 +' units'})(),
key3: function(){return this.key1 +' units'},
}
ob实际上是{ key1: 0.1, key2: 'undefined units', Function }
和obj.key3()给出了0.1 units
>
答案 0 :(得分:0)
初始化obj
时会调用IIFE。 key1
在obj
内部。这样您会得到一个未定义的错误。尽早声明key1
。
var obj = (function(){
var key1 = 0.1;
return {
key1: key1,
key2: (function(){
return key1 +' units';
})(),
key3: function(){
return this.key1 +' units'
}
};
})();
console.log(obj)