class 新的示例

博客转载了2019年独角兽企业重金招聘Python工程师的标准相关内容,链接为https://my.oschina.net/littlemonkeyc/blog/1934292 。
apolloxlua 官网 https://www.game550.cn 今天解决了个apolloxlua小bug。 在 switch 语句里, 所有的代码块没有换行的问题。 ```javascript //[NameSpace("core")] class Person{ hellow(){ console.log("base Person") console.log(this.age) } setAge(v) { this.age = v || 0; } static staticSmethod (type) { var instance = 0; switch (type) { case "A": print("A") instance = Person2 >>> New("wangwb"); instance >>> setAge(21); break; case "B": print("B") instance = Person >>> New(); instance >>> setAge(22); break; } instance >>> hellow(); } } class Person2 extends Person{ Person2 (name) { this.name = name; console.log("constructor.."); } hellow(){ console.log("override "); console.log("name=" + this.name + ",age=" + this.age); } } Person.staticSmethod("A") Person.staticSmethod("B") ``` 生成代码 ```python local exports={} local Person={} function Person:new(o) local o=o or {} setmetatable(o,self) self.__index= self return o end window.registerStd (0, "Person", Person) Person.hellow =function (self) print ("base Person") print (self.age) end Person.setAge =function (self,v) self.age=v or 0 end Person.staticSmethod =function (type) local instance=0 local exports=exports local CODE547069132834548919H = { ["default"]="CODE54706996767350042H", ["A"]="CODE547069978333147141L", ["B"]="CODE547069137473493932H" } if exports["CODE54706996767350042H"] == nil then exports["CODE547069978333147141L"]=function () print ("A") instance=Person2:new ("wangwb") instance:setAge (21) end exports["CODE547069137473493932H"]=function () print ("B") instance=Person:new () instance:setAge (22) end end local __indexer__ = CODE547069132834548919H[type] if __indexer__ == nil then __indexer__=CODE547069132834548919H["default"] end if exports[__indexer__] ~= nil then exports[__indexer__]() end instance:hellow () end local Person2=Person:new() function Person2:new(name) local o=o or {} setmetatable(o,self) self.name=name print ("constructor..") self.__index= self return o end window.registerStd (0, "Person2", Person2) Person2.hellow =function (self) print ("override ") print ("name="..self.name..",age="..self.age) end Person.staticSmethod ("A") Person.staticSmethod ("B") ``` 运行结果: ``` compile: 26.882080078125ms lua.vm.js:1 A lua.vm.js:1 constructor.. lua.vm.js:1 override lua.vm.js:1 name=wangwb,age=21 lua.vm.js:1 B lua.vm.js:1 base Person lua.vm.js:1 22 ```

转载于:https://my.oschina.net/littlemonkeyc/blog/1934292

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值