|
|
1
5
正如其他人所说,
但是,不需要每次创建对象时都执行它。你可以很容易地把这个放在某个地方:
它也会起作用的。
有点长的故事是如果一个物体
|
|
|
2
4
lua文档在这个细节上有点模糊,这里的许多答案要么与lua文档相呼应,要么没有完全解释这个令人困惑的小道消息。
线路
这个
当你把这两种说法结合起来… (1) setmetatable(o, self) (2) self._index = self
…你在用
以下功能等同:
setmetatable(o, self)
getmetatable(o)._index = self
|
|
|
3
3
lua不是一种面向对象的语言,但它拥有编写面向对象代码的所有功能。但是,它是在 prototyping 时尚A LA JavaScript . 不再显式创建类,而是创建一个原型对象,然后克隆以创建新实例。
这个
另见: |
|
|
4
0
它们用于重新定向表访问(local y=table[key]),这些访问也用于方法调用。在上述行中,对象o将尝试访问重新定向到当前对象自身的密钥,轻松地继承所有成员函数。也可能是数据变量,这取决于那个索引到底是什么以及它是如何工作的。 |
|
|
5
0
创建对象(只是表)与lua有很大不同。 基本思想是创建一个包含所有实例通用属性(函数和值)的常规表。这个表,我将调用catforcommonattributes表。 如果在表中引用某个属性,而lua找不到该属性,则可以告诉lua在其他地方查找该属性。我们希望lua在猫身上寻找共同的属性。元表回答了这一需求。稍后将详细介绍这一工作原理。
我们还需要cat中的方法能够使用实例值。
自我
需要的答案。以这种方式调用表函数(方法)时:
假设我们有一只猫叫车。
例如:
下面是一个通用函数,用于创建新的实例对象并为其设置元表。如果cat有一个构造函数(init),它也会被执行。
|
|
|
Daniel Wagner · 如何使用带有管道的luv? 1 年前 |
|
|
Naruto_333 · Roblox:函数不循环或添加“货币”值 1 年前 |
|
|
Lukas Raby · 玩Tween后,零件位置被锁定 1 年前 |
|
|
Noway · 为什么roblox工作室在桌子上走错了路 1 年前 |
|
|
localhorst · 索引处的铁路超高访问表条目 1 年前 |