Created
October 11, 2012 00:55
-
-
Save changtimwu/3869502 to your computer and use it in GitHub Desktop.
coffeescript class variable scope
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class myclass | |
local_var=[] | |
local_func = -> | |
local_var+=1 | |
local_func_wrong = -> | |
@myclass.class_var++ # wrong! no way to access class var | |
@inst_var++ # wrong! no way to access instance var | |
@class_var:0 # class variable | |
@class_func: -> # class function | |
local_func() # you can call local function | |
local_var++ # you can access local variable | |
@class_var=4 # you can access class variable through @ operator | |
@class_func_wrong: -> | |
inst_var=3 # wrong! you can't access instance variable | |
inst_func() # wrong! you can't call instance function | |
inst_var: 0 # instance variable | |
inst_func: -> # instance function | |
@inst_var++ # you can access instance variable through @ operator | |
local_func() # you can call local function | |
local_var++ # you can access local variables | |
myclass.class_func() # you can call class function via prefixing the classname. | |
myclass.class_var++ # you can access class variable via prefixing the classname. | |
i1 = new myclass() | |
i2 = new myclass() | |
i1.inst_var++ # you can access an instance's variable | |
i2.inst_func() # you can call an instance's function | |
i1.class_var++ # wrong! you can't access an instance's class variable | |
i1.class_func() # wrong! you can't call an instance's class function | |
myclass.class_func() # you can access a class's function | |
myclass.class_var++ # you can access a class's variable | |
i2.local_var++ # wrong! you can't access an instance's class's local var | |
i2.local_func() # wrong! you can't call an instance's class's local var | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
simple rules