$this
使用Tcl8.5,在方法内部调用和不调用有区别吗?例如:
package require Itcl
namespace import itcl::*
class MyCls {
method foo {}
method bar {}
}
body MyCls::bar {} { return "hi" }
body MyCls::foo {} {
puts [$this bar]
# OR
puts [bar]
}
您只需添加一个全局实现bar
即可尝试此操作。如下所示 - 没有区别。该类只是在进入全局命名空间之前添加另一个级别来检查过程。
% package require Itcl
% namespace import itcl::*
% class C {method foo {}; method bar {}}
% body C::bar {} {return "C::bar"}
% body C::foo {} { puts [$this bar]; puts [bar] }
% C c
c
% c foo
C::bar
C::bar
%