2009-06-10 76 views
2

假设我声明了一个结构化的JavaScript变量是这样的:自我参照

var mydata = {'list':[ 
{'fname':'george','lname':'washington'} 
,{'fname':'oscar','lname':'wilde'} 
,{'fname':'james','lname':'polk'} 
] 
,'summary':this.list[1]['lname'] 
} 

问:我怎样才能确保

this.list[1]['lname'] 

等于“王尔德”和我的“这”实际上是指 到我的意图?

+0

注意:我记得实际上看到有人在堆栈溢出回答中做了这样的事情,并说“AHA!”对自己,但我不记得后的网址。 – dreftymac 2009-06-10 22:28:02

回答

5

你也可以做这项工作的功能。

var mydata = {'list':[ 
{'fname':'george','lname':'washington'} 
,{'fname':'oscar','lname':'wilde'} 
,{'fname':'james','lname':'polk'} 
] 
,'summary':function(){return this.list[1]['lname']} 
} 

alert(mydata.summary()); 
5

书面这是不行的,但你可以这样做:

var mydata = {'list':[ 
{'fname':'george','lname':'washington'} 
,{'fname':'oscar','lname':'wilde'} 
,{'fname':'james','lname':'polk'} 
] 
} 

mydata.summary = mydata.list[1]['lname'];