Похоже, вы смешиваете ActionScript 2 с вашим кодом ActionScript 3.Как сказал Капеп, использование «этого» будет работать в вашем примере.То есть это совершенно правильный код:
String.prototype.print=function(){trace(this)}
Конечно, вы пропустили точку с запятой, но это не должно иметь значения:
String.prototype.print=function(){trace(this);}
// точка с запятой после 'trace (this)'
В зависимости от среды разработки у вас могут возникнуть проблемы с просмотром операторов трассировки в целом.Например, в Flex Builder операторы трассировки вообще не отображаются, если вы не находитесь в режиме отладки.Вставьте еще один вызов к trace
, чтобы убедиться, что вы видите операторы трассировки.
Как вы сказали, есть много других способов решения этой проблемы, таких как расширение класса String и добавление вашей функции "Print".Если вы действительно не можете заставить это работать, то ваш подход ActionScript 3 (т.е. объектно-ориентированный) может быть вашим лучшим вариантом.