我們已經知道在使用Knockout時做var self = this
是有用的,以避免事件處理程序中的問題。但是,我正在觀察Typescript中的奇怪行爲。以下是簡化的代碼示例。代碼中的「this」與執行過程中的「this」不匹配
<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魔法的一部分?
不幸的是,當使用箭頭函數時,你不能再使用重載。我很願意現在沒有超載,我已經看到有關於CodePlex上的範圍問題的活動。 – Stijn