actionscript-3 - 在 AS3 中使用对象访问器
问题描述
我在这里查看 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 参考展示了一个创建动态对象的示例,它实际上更像是一个关联数组:
var obj:Object = {a:"foo", b:"bar"};
虽然 AS3 确实允许 JavaScript 的某些特性,但我强烈建议您将其视为适当的强类型编程语言(更像 C# 或 Java,而不是 JavaScript),因为这会导致代码更简洁和性能更好(在某些情况下) )。
如果您在设计时就知道对象的属性,您应该创建具有 get/set 属性和方法的类,因为它们比动态对象具有更好的性能。
向对象添加动态函数依赖于使用Function
类型。
推荐阅读
- python - 如何将文本文件添加到从 python 中的请求调用创建的压缩文件中?
- python-3.x - 使用 SSLContext 指定 IP 地址 + SNI
- sql - 如何在创建时将相同的 id 动态分配给行列表?
- android - 生成 apk 时无法识别库
- python - 点击远离 tkinter.Enrry
- python - 反复构造和销毁上下文会报错 #1260
- php - Laravel 迁移不指定列类型
- javascript - 错误:JSON.parse 中位置 0 处的 JSON 中的意外标记 <
) 在 XMLHttpRequest.ajax.onreadystatechange - spring-boot - 当我升级到 Vue 2.6.0 时,为什么会收到“SyntaxError:字符类中的无效范围”?
- docker - Dockerfile COPY 从主机到容器有效,但是当 docker-compose.yml 使用卷时,容器中的文件对主机不可见