2013-06-18 29 views

回答

7

事實是,TOPLEVEL_BINDING總是指Binding預定義的全局實例,而Kernel#binding創建一個封裝當前執行上下文每一次的Binding一個新的實例。在頂層,它們都包含相同的綁定,但它們不是同一個對象,您不能使用=====來測試它們的綁定相等性。

puts TOPLEVEL_BINDING 
puts TOPLEVEL_BINDING 
puts binding 
puts binding 
puts binding == binding 

# => 
#<Binding:0x9769ea0> 
#<Binding:0x9769ea0> 
#<Binding:0x9941ea8> 
#<Binding:0x9941e58> 
false