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())()
  • 相关阅读:
    Google Chrome开发者工具
    自动跳转页面
    Java读取properties配置文件
    Linux(CentOS):安装JDK + MySQL + FTP
    MySQL数据库完全卸载
    Java冒泡排序
    Java选择排序
    Java多线程总结
    数据库索引(Oracle和MySql)
    Oracle数据库
  • 原文地址:https://www.cnblogs.com/xyida/p/6768896.html
Copyright © 2011-2022 走看看