2012-06-12 72 views
3

这里是我的代码:JavaScript对象总是空

myExt = {}; 
myExt.Panel = function (config){ 
    var d = document.createElement("div"); 
    /*Do something (a lot) with config and d here 
    // a lot of code here 
    */ 
    return 
    { 
     div:d, 
     events:e, 
     customattribs:ca 
    }; 
} 

这里是我的来电显示:

var p = new myExt.Panel({ 
    id:'parent', 
    events:{ 
     onload:function(){ 
      alert("onload"); 
     } 
    }, 
    //more configs 
}); 

,如果我做

console.log(p) 

我得到空。请帮我调试问题。

回答

8

Automatic semicolon insertion已经从原来的函数的返回值:

return { div: d, events: 3, customattribs:ca }; 

到:

return; 

这将是更好,如果你保存你想在一个变量返回的值,然后返回该对象:

var ret; 
ret = { 
    div: d, 
    events: e, 
    customattribs: ca 
}; 
return ret; 
+0

dang ......多么神秘! – riship89

+0

@ hrishikeshp19,我强烈推荐阅读道格拉斯克罗克福德曾经写过关于JavaScript的所有内容,并观看[他的演讲](http://yuiblog.com/crockford/)。 – zzzzBov

+0

或者更好,并且不太自以为是,通过http://jsHint.com运行代码。它会为你捕捉到这个错误。 – 2012-06-13 00:07:50