我是一名Java程序员,现在需要处理Flex/ActionScript项目.我得到了一个使用Flex 3 Cookbook的ITreeDataDesriptor的例子,但是有一行动作脚本代码很难理解.如果有人能够进一步解释这一点我感激不尽.
public function getData(node:Object, model:Object=null):Object { if (node is Office) { return {children:{label:node.name, label:node.address}}; } }
我不理解的部分是"{children:{label:node.name,label:node.address}}".Office只是一个包含两个String属性的值对象:名称和地址.
以下返回表达式(从问题修改)......
return {children:{label:node.name, body:node.address}}
...在功能上等同于此代码......
var obj:Object = new Object(); obj.children = new Object(); obj.children.label = node.name; obj.children.body = node.address; return obj;
问题代码中返回的匿名对象使问题复杂化,因为它定义了两次属性.在这种情况下,使用第一个声明,并忽略后续声明.不抛出编译时或运行时错误.