在Flex 3中,
var anInstance : MyClass = new MyClass();
with (anInstance)
{
property1 = "fred";
property2 = 5;
propert3 = 7;
}
不会将“属性”标记为不存在的属性名称。我认为这是邪恶的JavaScript对象行为的剩余部分(指的是对象的属性名称隐式创建它),但它似乎是“with”的副作用。
这让我非常难过,因为“with”是对Delphi的一点提醒(除了它在那里正常工作)。
我在这里错过了什么吗?
答案 0 :(得分:3)
Actionscript显然会出现问题(这并不奇怪,因为语法不需要像“。”或“ - >”这样的显式解除引用符号来指示哪些变量名称应该“有效”。)因此,您有效地在名为property3的全局范围内创建变量。
在考虑为什么存在这个“问题”之后编辑 -
Javascript是非严格打字的缩影。作为Javascript的严格超集,Actionscript不能强制执行严格的输入,除非由它自己的语言扩展声明 - 这意味着它必须支持无类型的变量。
答案 1 :(得分:1)
某些类是动态的(例如movieclip),并且可以在运行时添加属性: