Created
September 25, 2012 07:20
-
-
Save changtimwu/3780432 to your computer and use it in GitHub Desktop.
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
# 只會被執行一次, 而不是每次new 都執行 | |
myvar_init = -> | |
console.log 'got myvar_init' | |
3 | |
# class 不是典型的declare , class內所有的member 都佔有實體, class member 真正在做的是設定初始值, 而非type | |
class Packet | |
debugFlags : false | |
stpMac: new Buffer [ 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 ] | |
stpPdu: | |
llc: new Buffer [0x42, 0x42, 0x03] | |
myvar: (myvar_init()+15; -50) | |
dosome: -> | |
@stpMac[0]+=1 | |
qq: 99 | |
#這樣總共有三份 pkt1, pkt2, Packet | |
pkt1 = new Packet | |
console.log 'Packet::myvar = ', Packet::myvar | |
console.log 'pkt1.myvar = ', pkt1.myvar | |
pkt1.myvar=4 | |
Packet::myvar=8 | |
pkt2 = new Packet | |
console.log 'Packet::myvar = ', Packet::myvar | |
console.log 'pkt1.myvar = ', pkt1.myvar | |
console.log 'pkt2.myvar = ', pkt2.myvar | |
pkt1.debugFlags = true | |
pkt2.debugFlags = false | |
console.log 'pkt1 debug flags =', pkt1.debugFlags | |
console.log 'pkt2 debug flags =', pkt2.debugFlags | |
#buffer 只是傳 reference, 所以三個一起共享 stpMac | |
console.log 'pkt1.stpPdu = ', pkt1.stpPdu | |
pkt1.stpMac[0]=0x99 | |
console.log 'pkt1.stpMac = ', pkt1.stpMac | |
console.log 'pkt2.stpMac = ', pkt2.stpMac | |
pkt1.dosome() | |
console.log 'pkt1.stpMac = ', pkt1.stpMac | |
pkt1.dosome() | |
console.log 'pkt2.stpMac = ', pkt2.stpMac | |
# 用class 去new 兩個便 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment