2012-06-03 43 views

回答

18

this的紅寶石等價物是self - 它們都指當前實例。

棘手的部分是,在Ruby類作用域中,self引用定義您正在構建的類的類Class的當前實例。在方法中,self指的是類的實例。

例如:

 
class Example 
    puts self # => "Example" - the stringified class object 

    def foo 
    puts self # #<Example:0xdeadbeef> - the stringified instance 
    end 
end 
3

$this模擬是self,如已經提到的。但是,您詢問$this->,這意味着您想使用它來訪問實例變量($this->somevar)或實例方法(this->somemethod())。對於實例變量,Ruby中的等效項爲@(如@somevar)。例如,方法相當於只寫方法名稱(somemethod),或者如果您想詳細說明(self.somemethod)。