2012-03-25 48 views

回答

6

罪魁禍首在於這部分代碼:

a.instance_eval do 
    b = 2 
end 

雖然b = 2在您的實例的環境中計算,它不叫二傳手。相反,它只是在當前範圍內創建一個名爲b的新本地變量。要打電話給二傳手,您必須進一步澄清您的代碼以解決歧義:

a.instance_eval do 
    self.b = 2 
end 
0

變化:

a.instance_eval do 
    self.b = 2 
end