我有这样的代码,我使用函数在对象中创建对象。如您所见,我无法访问createObj,因为它尚未定义。使用“this”并没有帮助,因为它仍然是“窗口”。我知道一种替代方法是在创建对象o之后使用New或创建“obj1”属性,但有没有其他方法可以做到这一点?
o = {
createObj: function(){
//obj creation code
},
obj1: createObj()
}
答案 0 :(得分:2)
你可以;
var o = (function() {
function createObj() {
//obj creation code
}
return {
createObj: createObj,
obj1: createObj()
}
})();
答案 1 :(得分:1)
您可以尝试:
var o = {
createObj: function(){
//obj creation code
}
}
o.obj1 = o.createObj();
答案 2 :(得分:1)
var o = {
createObj : function () {
//obj creation code
return "bl";
}
}
Object.defineProperty(o, "obj", {
get : function () {
return o.createObj();
}
});
console.log(o.obj)
另一个有趣的案例。使用Object api。