我在这里查看javascript代码:https://www.w3schools.com/js/js_object_accessors.asp
它们在javascript中使用对象访问器显示的位置。
作为JS的超集,我尝试在AS3中使用它,但出现编译器错误
var p = {
get a() {
return 1;
}
};
trace(p.a);
我希望在AS3中必须使用某种方法?有什么想法吗?
我已经知道了更长的语法,尽管当然可以使用:
var p = {
a:function() {
return 1;
}
};
trace(p.a());
AS3语法与JavaScript有很大不同。变量具有类型(即使只是Object
)。 AS3 reference显示了一个创建动态对象的示例,该对象实际上更多是一个关联数组:
var obj:Object = {a:"foo", b:"bar"};
虽然AS3确实允许JavaScript的某些特质,但我强烈建议您将其视为适当的强类型编程语言(比起JavaScript,更像C#或Java),因为这会导致代码更简洁,性能更好(某些情况)。
如果在设计时知道对象的属性,则应使用get / set属性和方法创建类,因为它们比动态对象具有更好的性能。
向对象添加动态功能依赖于使用Function
类型。
是的,在AS3中有getter和setter,但它们仅在类中可用。
实施:
Function
用法:
package
{
public class ExampleGS
{
public function get a():int
{
return 1;
}
}
}
有关var p:* = new ExampleGS;
trace(p.a); // 1
的更多信息。