我们已经知道在使用 Knockout 时这样做很有var self = this
用,可以避免事件处理程序中的问题。但是,我在 Typescript 中观察到奇怪的行为。下面是一个简化的代码示例。
<i class="icon-edit" data-bind="click: $parent.GetEditForm"></i>
export class Foo
{
public ID: KnockoutObservable<Number>;
}
export class FooEditor
{
public Items: KnockoutObservableArray<Foo>;
public GetEditForm(item: Foo, event)
{
console.log(this);
console.log(item);
}
}
根据 Visual Studio,this
是 的一个实例FooEditor
并且item
是Foo
. 但是,在执行过程中,两者都this
引用item
了Foo
. TypeScript 错了吗?或者这是 Knockout 魔法的一部分?