2012-10-25 125 views
1

我搜索了一個小時,現在(W/O任何成功),我不知道怎麼可以定義在其它對象的對象(在JavaScript):Javascript對象在其他對象

function UserStat(arr) { 
    var arrx = arr; 
    this.day = function(dateofday) { 
     //Some code going here which results will be stored variables like: 
     this.a = someInnerFunction(); 
     this.b = someOtherFunction(); 
    } 
} 

我想當我創建外部函數的一個實例來訪問這些變量,在某種程度上是這樣,如果這是可能的:

var value = new UserStat(arr1).day('2012-10-20').a 

預先感謝您的幫助!

+2

只需在結尾處有「日期」功能'返回這個;'。 – Pointy

+1

基本的問題是,通過使用'this',你將'a'和'b'變量綁定到'UserStat'對象。 – bellpeace

回答

3

我不知道你怎麼想用dateofday變量,但是這會工作:

function UserStat(arr) { 
    var arrx = arr; 
    this.day = { 
     a: someInnerFunction, 
     b: someOtherFunction 
    }; 
} 

new UserStat().day.a(); 

所以纔會這樣:

function UserStat(arr) { 
    var arrx = arr; 
    this.day = (function(date){ 
     var obj = {}; 
     obj.a = someInnerFunction; 
     obj.b = someOtherFunction; 
     return obj; 
    }(dateofday)); 
} 

甚至這樣的:

function UserStat(arr) { 
    var arrx = arr; 
    this.day = new function() { 
     this.a = someInnerFunction, 
     this.b = someOtherFunction 
    }; 
} 
+0

謝謝你的回答!基本上我需要一個'var tst = new UserStat(arr)'的實例,它存儲來自'arr'的數據,但是當我調用'tst.day(date)'時,我想收到關於我通過的日期的每一個信息來自'arr'對象。例如'tst.day(date).a'作爲一個整數。 – Pho3nixHun

+0

謝謝,最後我想出了基於你答案的第二部分,但我認爲最後不需要'(dateofday)'部分。 – Pho3nixHun

0
function UserStat(arr) { 
    var arrx = arr; 
    this.day = function(dateofday) { 
     //Some code going here which results will be stored variables like: 
     var dayFunc = { 
      a: someInnerFunction, 
      b: otherFunc   
     } 
     return dayFunc; 
    } 
} 
​ 
+0

這將爲UserStat.day分配一個函數,它本身在被調用時創建一個新對象並返回它。他可能打算一天成爲對象。 – jrajav