Actionscript 3 actionscript 3如何访问';这';内联函数
我正在尝试做一些类似的事情:Actionscript 3 actionscript 3如何访问';这';内联函数,actionscript-3,Actionscript 3,我正在尝试做一些类似的事情: String.prototype.print=function(){trace(??????)} 我一辈子都想不出一个办法来抓住绳子!是的,我知道还有其他方法可以解决这个问题,等等。但是…不确定问题出在哪里,使用这个可以在匿名函数中正常工作 String.prototype.print=function():String{return "printed "+this;} var o:Object = "foo"; trace(o.p
String.prototype.print=function(){trace(??????)}
我一辈子都想不出一个办法来抓住绳子!是的,我知道还有其他方法可以解决这个问题,等等。但是…不确定问题出在哪里,使用
这个
可以在匿名函数中正常工作
String.prototype.print=function():String{return "printed "+this;}
var o:Object = "foo";
trace(o.print()); // traces: printed foo
我刚刚欺骗编译器使用对象,因为“foo.print()
导致
错误:通过具有静态类型字符串的引用调用可能未定义的方法print
看起来您正在将ActionScript 2混合到ActionScript 3代码中。正如kapep所说,在您的示例中使用“this”将起作用。也就是说,这是完全有效的代码:
String.prototype.print=function(){trace(this)}
当然,您缺少分号,但这不重要:
String.prototype.print=function(){trace(this);}
//在“trace(this)”之后分号
通常,根据您的开发环境,您可能在查看跟踪语句时遇到问题。例如,在Flex Builder中,跟踪语句根本不会显示,除非您处于调试模式。插入另一个对trace
的调用,以验证是否可以看到跟踪语句
正如您所说,还有许多其他方法可以实现这一点,例如扩展String类和添加“Print”函数。如果你真的无法做到这一点,那么尝试ActionScript3(即面向对象)方法可能是你最好的选择