Haxe Javascript:在不使用Reflect的情况下按名称获取和设置属性
Haxe Javascript: get and set property by its name without using Reflect
我希望能够在不使用Reflect API的情况下通过名称设置和获取属性值。我正在制作某种tween引擎,为数百个对象设置动画,对函数Reflect.getProperty
和setProperty
的调用需要相当多的CPU时间。
有没有一种方法可以绕过Reflect API而不必在我的Haxe代码中注入原始javascript
?(所以它也可以在js以外的其他平台上使用)
因此,与其这样做:
finalValue = Reflect.getProperty(object, propertyName);
我希望能够做到这一点:
finalValue = object[propertyName];
谢谢。
去untyped
怎么样?
// set
untyped object[propertyName] = 15;
// get
var value = untyped object[propertyName];
自己试试:http://try.haxe.org/#5b61e
警告取消类型化可以省略类型系统,并且更容易出错。如果使用具有Haxe属性(getter/setters)的实例,可能会产生意外的结果。这就是为什么使用
Reflect
被认为更安全的原因。
将"untyped"与getter/setter属性和标准属性一起使用时需要小心,因为调用略有不同。例如:
// set
untyped object["set_" + propertyName] = 15;
// get
var value = untyped object["get_" + propertyName];
通常,我们对tween库所做的是在映射属性时提前进行检查,看看它是否是getter/setter,并存储这些信息以供运行时使用。
相关文章:
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何从选择框中的选项中获取属性值
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- 使用Undercore获取属性值数组
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- "无法获取属性'的值;style'"当试图在IE中更改样式时
- 无法获取属性'字符串'的未定义或null引用IE 11 ASP.NET
- 无法获取属性'的值;拆分'在IE8中调用ajax之后
- JQuery关键字“;这个“;未获取属性值
- SCRIPT5007:无法获取属性'长度'的未定义引用或null引用
- 为什么我得到“;无法获取属性的值'SetReturnValue'"当使用ceebox显示YouT
- 无法获取属性'setActionableButtonState'的未定义引用或null引用
- JavaScript |对象:获取属性忍者移动
- 如何使用 jQuery 在循环中获取属性的值
- 无法获取属性'偏移'的未定义引用或null引用
- 从列表中的选定项获取属性值
- 获取属性(邮政编码)并在Google地图API 3中使用
- IE:无法获取属性'的值;clientWidth':对象为null或未定义
- 如何通过类名和过滤函数获取属性值
- 无法使用javascript表示法获取属性值