# util.metaProperty 库模块帮助文档

[关于元表](https://www.aardio.com/zh-cn/docs/language-reference/datatype/table/meta.md)

## util 成员列表 <a id="util" href="#util">&#x23;</a>

### util.metaProperty(properties,...) <a id="util.metaProperty" href="#util.metaProperty">&#x23;</a>

```aardio
util.metaProperty(properties,...metaProperty(  

	属性 = {  
		_get = function(){   
			/*读取属性代码写在这里*/  
			return null;  
		}  
		_set = function( value ){  
			/*写入属性代码写在这里*/  
			..io.print( owner,value)  
		} 	  
	};  
)
```

## util.metaProperty 成员列表 <a id="util.metaProperty" href="#util.metaProperty">&#x23;</a>

用于创建属性元表,  
可在构造函数中指定一个或多个初始化参数表,  
按参数顺序混入到新创建的属性表并返回,  

用返回的属性表作为对象元表,  
读写对象中不存在的属性会触发属性元表。  
如果在属性元表中对应属性是一个表,  
则读属性会触发属性的get成员函数,写属性会触发该属性的set成员函数。  
否则直接返回属性元表中对应属性的值

### util.metaProperty.each() <a id="util.metaProperty.each" href="#util.metaProperty.each">&#x23;</a>

```aardio
for(k,v in util.metaProperty.each(/*对象*/) ){

}
```

### util.metaProperty.extend(类对象,一个或多个混入表) <a id="util.metaProperty.extend" href="#util.metaProperty.extend">&#x23;</a>
使用混入表扩展类的属性情  
类命名空间必须定义了_metaProperty静态成员  
并且是一个有效的属性表

### util.metaProperty.is(对象) <a id="util.metaProperty.is" href="#util.metaProperty.is">&#x23;</a>
对象是否支持metaProperty

### util.metaProperty.isKindOf(对象,类对象) <a id="util.metaProperty.isKindOf" href="#util.metaProperty.isKindOf">&#x23;</a>
判断对象是否由指定的类创建  
类必须是使用属性表定义的类,并符合标准规范
