var s={};
s.WHEN={}
为什么这样做:
s.WHEN.foo=5;
但这不是:
s.WHEN['info']=function(){trace('do something');}
在我运行这两行后,我的s.WHEN对象只有foo:5并且缺少信息:function
我使用此功能通过浏览器中的控制台查看flash ...
var console:Object={
log:function(_){ExternalInterface.call("window.console.log",_);},
dir:function(_){ExternalInterface.call("window.console.dir",_);}
}
然后,如果我这样做(闪光灯):
console.log(s.WHEN);
我明白了:
Object
> foo: 5
> __proto__: Object
但如果我这样做:
console.log(s.WHEN['info']);
我明白了:
function
为什么它存在但不作为我的s.WHEN对象的一部分?
答案 0 :(得分:0)
如果你尝试
trace( console.log );
您还会看到function
因为您正在引用函数而不是函数调用。
所以使用:
console.log( s.WHEN() );
但是你什么也看不见(好吧,你会在Flash控制台中有一个跟踪),因为WHEN引用的函数什么都不返回。
s.WHEN[ 'info' ] = function(){ return 'do something' };
console.log( s.WHEN() ); // <-- Note the bracket after WHEN
它会起作用。
但正如Gio所说,你应该使用OOP而不是匿名的对象/函数,这样可以简化生活,调试也不会太痛苦。