2010-07-03 28 views

回答

2

經過一番研究,我會說是的,他們似乎是相關的概念。

JS中的作用域鏈維護執行上下文(變量綁定等)的列表,其中鏈的一端當前正在執行的範圍的上下文以及全局範圍。只要閉包是可到達的,創建一個引用自由變量的閉包就需要保持該上下文列表。

Ruby的綁定對象的文件說:在代碼中的一些 特定的位置和 類綁定封裝 執行上下文的

對象保留此背景下以備將來使用。 所有保留的變量,方法,自身的值, 以及可能在此上下文中可訪問的迭代器塊 均爲 。綁定對象可以是使用Kernel#binding創建的 ,並且 可用於 Kernel#set_trace_func的回調。

這些綁定對象可以作爲 內核#eval 方法的第二個參數傳遞,建立用於評估的環境 。

我不太瞭解Binding實現方式的內部結構,但它似乎具有相同的目的:爲將來的評估存儲上下文。

相關問題