腳本定義類,語法借鑑了python
定義類的語法
class child
endclass
構造函數__init__
func __init__(self, name, age)
self.name = name
self.age = age
end
析構函數__del__
func __del__(self)
end
類對象函數
func GetNameAndAge(self)
return self.name, self.age
end
類變量(類全局變量)
用過類名.attri訪問(與python不同,也允許通過self.attri訪問全局變量;所以如果有同名的全局變量,通過self.attri並不會給對象添加屬性)
class child
sum=0
school="大二班"
endclass
類函數(類全局函數)(第一參數不是self的就歸爲類全局函數)
通過類名.func方法名訪問
class child
sum=0
school="大二班"
func GetSchool()
return child.school
end
func GetSum()
return child.sum
end
endclass
完整的自定義類實例
class child
sum=0
school="大二班"
func __init__(self, name, age)
self.name = name
self.age = age
child.sum = child.sum + 1
end
func __del__(self)
child.sum = child.sum - 1
end
func GetSchool()
return child.school
end
func GetSum()
return child.sum
end
func GetNameAndAge(self)
return self.name, self.age
end
endclass
測試代碼如下
xiaoming=child("小明", 8)
yew=child("耀耀", 6)
xiaogang=child("小剛", 7)
//輸出log
js.debug.log("log\tname:" + xiaoming.name + "\tage:" + xiaoming.age)
js.debug.log("log\tname:" + yew.name + "\tage:" + yew.age)
js.debug.log("log\tname:" + xiaogang.name + "\tage:" + xiaogang.age)
js.debug.log("log\t學校:" + child.school + "共有學生:" + child.GetSum() + "名")
運行結果:
[24176] log name:小明 age:8
[24176] log name:耀耀 age:6
[24176]log name:小剛 age:7
[24176] log 學校:大二班共有學生:3名
接下來,有一名學生轉學了
//觸發析構,類似python中的del xiaogang
xiaogang=nil
js.debug.log("log\tname:" + xiaoming.name + "\tage:" + xiaoming.age)
js.debug.log("log\tname:" + yew.name + "\tage:" + yew.age)
js.debug.log("log\tname:" + xiaogang.name + "\tage:" + xiaogang.age)
js.debug.log("log\t學校:" + child.school + "共有學生:" + child.GetSum() + "名")
輸出log(xiaogang同學的信息已經找不到了,學生減少了一名)
[26856] log name:小明 age:8
[26856] log name:耀耀 age:6
[26856] log name:xiaogang.name age: xiaogang.age
[26856] log 學校:大二班共有學生:2名