[Haxe] Reflect

来源:互联网 发布:淘宝女包店铺排行榜 编辑:程序博客网 时间:2024/06/06 12:18

api在此 http://api.haxe.org/Reflect.html

官方的解释是,Reflect 通过抽象的接口,以非类型化的方式动态地操纵值,,请谨慎使用。

那咱们就谨慎使用吧-_-|||

var test:Dynamic={};

[callMethod]

test.func = function(a:Float, b:Float):Float {    return a + b; };Reflect.callMethod(test, test.func, [1,2]);//相当于test.func(1,2),感觉没啥用呢。

[copy]

Reflect.copy(test);//拷贝test,就是复制一份,test的改变不会影响此拷贝。

[deleteField]

test.a=1;trace(test.a); //输出 1Reflect.deleteField(test, "a");trace(test.a); //输出 null

[field] [getProperty]

//这哥俩暂时没发现有啥区别,待以后慢慢发掘trace(Reflect.field(test, "func"));//输出  <function>trace(Reflect.getProperty(test, "func"));//输出  <function>

[fields]

//返回由字段名构成的数组,注意,不是字段值trace(Reflect.fields(test))//输出[a,func]

[hasField]

//检查对象是否有指定的字段trace(Reflect.hasField(test,"a"))//返回 truetrace(Reflect.hasField(test,"b"))//返回 false

[setField] [setProperty]

//设置属性值//这哥俩暂时也没发现有啥区别,待以后慢慢发掘Reflect.setField(test, "a", 2);Reflect.setProperty(test, "a", 2);



0 0