1

$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]
}
4

1 回答 1

0

您只需添加一个全局实现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
%
于 2014-02-26T07:53:25.110 回答