在对象中调用对象的方法

时间:2014-02-03 13:12:18

标签: javascript

我有这样的代码,我使用函数在对象中创建对象。如您所见,我无法访问createObj,因为它尚未定义。使用“this”并没有帮助,因为它仍然是“窗口”。我知道一种替代方法是在创建对象o之后使用New或创建“obj1”属性,但有没有其他方法可以做到这一点?

o = {
createObj: function(){
//obj creation code
},
obj1: createObj()
}

3 个答案:

答案 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。