美文网首页
package.loaded作用

package.loaded作用

作者: abios | 来源:发表于2017-12-20 17:49 被阅读0次

    用require函数只能加载一次,因为它的特性是:
    1、require函数会搜索目录加载文件
    2、require会判断是否文件已经加载避免重复加载同一文件。
    而这个特性二,虽然我们可能知道这两个特性,但是潜意识里面常常把这个特性二给忽视掉了.
    直到哪天我们需要反复加载同一个lua文件,但是没有实现自己想要效果的时候,才会发现这个特性二的存在感特别强!

    也许有的小伙伴,会有疑问,为什么要反复加载啊?加载一次不就能用了么?
    当我有一些特殊的需求的时候,就可能会需要反复加载某个lua文件,例如我的文件lua文件动态地改变了,或者一些其他特殊原因.

    那么,如何实现用require在我特定需求的时候可以反复加载一个lua文件?
    答案是:二次加载前加这一句package.loaded[luafile] = nil就ok了
    例如我们需要反复地required(‘test.lua’),那么第二次加载时的代码如下:
    package.loaded[‘test.lua’] = nil
    required(‘test.lua’)

    相关文章

      网友评论

          本文标题:package.loaded作用

          本文链接:https://www.haomeiwen.com/subject/yofnwxtx.html