个人运行环境 Lua5.3编程
按照咱们以往的Java或C#编程经验,若是一个class被new,那么这个class中全部成员变量的值都是默值或是构造函数中赋的值,但在Lua中的local变量却并不会被清空。函数
这个例子中,咱们定义了一个local 的 instance 在ClassA中,经过new() 两次 ClassA,经过输出观察到构造函数(ctor)调用了两次,但第二次new时,local 变量仍是存在上次的值。oop
--- Lua中local变量的做用域,并不局限于当前class --- Created by zhaoqingqing. 569032731@qq.com --- DateTime: 2018/11/26 --- --- require("Common/class") local ClassA = class("ClassA") local flag = nil function ClassA:ctor() print("ClassA:ctor") self:TestLocal() end function ClassA:TestLocal() if not flag then flag = "ClassA" print("TestLocal") end end ClassA.new() ClassA.new()
输出结果:ui
lua.exe E:/Code/blog_samplecode/lua_scripts/oop/LocalRefContext.lua ClassA:ctor TestLocal ClassA:ctor