2012-06-03 12 views

Odpowiedz

18

Równoważnik rubinowy this to self - oba odnoszą się do bieżącej instancji.

Trudnym elementem jest to, że w zakresie klasy Ruby, self odnosi się do bieżącej instancji klasy Class, która definiuje budowaną klasę. Wewnątrz metody self odnosi się do instancji klasy.

np

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

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

analogu $thisself jest, jak już wspomniano. Pytałeś jednak o $this->, co oznacza, że ​​chcesz go użyć do uzyskania dostępu do zmiennej instancji ($this->somevar) lub metody instancji (this->somemethod()). Dla zmiennej instancji odpowiednikiem w Ruby będzie @ (jak w @somevar). Na przykład metody, odpowiednik byłoby po prostu napisać nazwę metody (somemethod) lub, jeśli chcesz być verbose (self.somemethod).