From 20e8e3547b9a8a78570edacf33571a1e06e5adda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Tue, 26 Feb 2019 16:11:31 +0800 Subject: =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=87=BD=E6=95=B0=E7=9A=84self?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/vm/function.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/src/vm/function.lua b/server/src/vm/function.lua index 24990448..17cc237b 100644 --- a/server/src/vm/function.lua +++ b/server/src/vm/function.lua @@ -132,10 +132,18 @@ function mt:run() end -- 第一次运行函数时,创建函数的参数 - if self._runed == 1 then - self:createArgs() + if self._runed ~= 1 then + return + end + + -- 如果是面向对象形式的函数,创建隐藏的参数self + if self._object then + self:saveLocal('self', self._object) end + -- 显性声明的参数 + self:createArgs() + --local index = 0 --if func.object then -- local var = self:createArg('self', func.colon, self:getValue--(func.object, func.colon)) -- cgit v1.2.3