zoukankan      html  css  js  c++  java
  • cocos2dx-lua中handler解析

    先看一段代码:

    local c=c or {}
    
    
    function c:onTouch()
        print "test in onTouch"
    end
    
    function handler(obj, method)
        return function(...)
            return method(obj, ...)
        end
    end

    测试:

    1:

    print(handler(c,c.onTouch))
    print(c.onTouch(c))

    输出

    function: 0x7f0d0884ae00                                                                                                
    test in onTouch
    2:
    print(handler(c,c.onTouch))
    print((function()c.onTouch(c)end))

    输出

    function: 0x7f44d8d2ab40                                                                                                
    function: 0x7f44d8d29e30 
     
    结论:
    handler只不过是对method进行封装 套了一层匿名function并返回该匿名方法
    所以handler(c,c.onTouch)()等价于c:onTouch()等价于c.onTouch(c)也同样等价于(function()c.onTouch(c)end())()
  • 相关阅读:
    GGEditor
    Vue 项目(HTML5 History 模式) 部署服务器
    mysql连接状态
    mysql连接状态
    HBase配置性能调优
    HBase配置性能调优
    spark streaming检查点使用
    spark streaming检查点使用
    spark streaming的有状态例子
    spark streaming的有状态例子
  • 原文地址:https://www.cnblogs.com/xyida/p/6768896.html
Copyright © 2011-2022 走看看