gpt4 book ai didi

lua - 是否可以在 lua 中将一个单独定义的函数分配给一个对象作为对象的方法,可以访问 'self' ?

转载 作者:行者123 更新时间:2023-12-04 13:05:30 28 4
gpt4 key购买 nike

是否可以将单独定义的函数作为对象的方法分配给对象,并能够访问该对象的self

SomeObject = {name = "Jack"}

function someExternalFunction ()
print(self.name)
end
SomeObject.someMethodName = someExternalFunction -- this is just an example
SomeObject:someMethodName() --> prints "Jack"

最佳答案

self 不是魔术,也不是什么特别的东西。当您调用像 object:method() 这样的函数时,这只是 object.method(object) 的糖语法。

当您将函数定义为 function object:method() 时,它隐含地包含一个名为 self 的第一个参数,因此该定义等同于 function object.method(self)

所以您需要做的就是正确定义您的外部函数,它会正常工作。

SomeObject = {name = "Jack"}

function someExternalFunction(self)
print(self.name)
end
SomeObject.someMethodName = someExternalFunction
SomeObject:someMethodName() --prints "Jack"

关于lua - 是否可以在 lua 中将一个单独定义的函数分配给一个对象作为对象的方法,可以访问 'self' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69667917/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com