|
写新机器框架,把hclua中的ring组件迁移到了js,实在是差距太大
lua代码:
js代码
js的真的赏心悦目多了。
最关键用起来也方便,不用考虑倒地是对象还是table,一个点全打通
- (function(app){
- let ring=app.Include("helllibjs/lib/container/ring.js")
- class History{
- constructor(size){
- this.Lines=ring.New(size)
- this.Size=size
- }
- OnEvent(event){
- if (event.Name=="line"){
- this.Current=event.Data.Output
- this.CurrentOutput=JSON.parse(DumpOutput(1))
- this.Lines=this.Lines.Next().WithValue({
- Line:this.Current,
- Output:this.CurrentOutput,
- })
- }
- }
- GetLast(n){
- let result=[]
- if (n>this.Size){
- n=this.Size
- }
- let r=this.Lines
- for (let i=0;i
- let v=r.Value()
- if (v!=null){
- result.unshift(v)
- }
- r=r.Prev()
- }
- return result
- }
- static Install(size){
- app.History=new History(size)
- app.Engine.BindEventHandler(function(event){
- app.History.OnEvent(event)
- })
- }
- Size=0
- Lines=null
- Current=""
- CurrentOutput=null
- }
- return History
- })
复制代码
虽然一直觉得JS不好用,但也要看对比。
星爷的唐伯虎点秋香诚不欺我。
|
|