我試圖做這樣的事情:ActionScript 3的如何訪問「這個」內聯函數
String.prototype.print=function(){trace(??????)}
我不能爲我的生活想出一個辦法來得到在字符串!是的,我知道還有其他的方式來處理這個等,但...
我試圖做這樣的事情:ActionScript 3的如何訪問「這個」內聯函數
String.prototype.print=function(){trace(??????)}
我不能爲我的生活想出一個辦法來得到在字符串!是的,我知道還有其他的方式來處理這個等,但...
不知道是什麼問題,使用this
在匿名函數中工作正常。
String.prototype.print=function():String{return "printed "+this;}
var o:Object = "foo";
trace(o.print()); // traces: printed foo
我只是騙編譯器使用的對象,因爲"foo".print()
導致
Error: Call to a possibly undefined method print through a reference with static type String.
它看起來像你混合的ActionScript 2到您的ActionScript 3代碼。正如kapep所說,使用「this」可以在你的例子中起作用。也就是說,這是完全合法的代碼:
String.prototype.print=function(){trace(this)}
當然,你缺少一個分號但是這不應該事:
String.prototype.print=function(){trace(this);}
//分號跟蹤後,」(這)'
根據您的開發環境,通常可能無法查看跟蹤語句。例如,在Flex Builder中,除非您處於調試模式,否則跟蹤語句完全不顯示。插入另一個電話至trace
以驗證您是否可以看到跟蹤語句。如你所說,還有很多其他方法可以解決這個問題,比如擴展String類和添加「打印」功能。如果你真的無法做到這一點,那麼嘗試使用ActionScript 3(即面向對象)方法可能是你的最佳選擇。
謝謝。我認爲這是編譯器錯誤讓我失望。 – Tom