我試圖訪問我的MyAccount
類中的私有方法,但它給出的錯誤爲uncaught typeError: this.displayTabOnClick not a function
。我可以清楚地確認這是一種私人方法,在MyAccount
課程中可用,其他類似方法displayTabOnPageLoad
完美。未捕獲的類型錯誤:不是TypeScript中私有方法的函數
下面的代碼片段:
MyAccount.ts文件
class MyAccount
{
private displayTabOnClick(thisObj: JQuery, e:Event, callback?:()=>any): void {
$(document).scrollTop(0);
e.preventDefault()
let hash = thisObj.prop('hash');
// Update the location hash
window.location.hash = hash;
// Add Selected class to the current click elem
// Remove selected class from other .menu-link elem
thisObj.addClass('selected');
$('.menu-link').not(thisObj).removeClass('selected');
// Set Tab Header
this.setHeader(hash);
// Hide all sections
// And display only the hashed section
$('section').css('display','none');
$(hash).css('display','block');
}
/**
* Switch My Account Tab
* According to the passed ID
*
* @return void
*/
public switchTab (e?: Event): void {
if (e && e.type === "click") {
this.displayTabOnClick($('.menu-link'),e);
}
else {
this.displayTabOnPageLoad($('.menu-link'));
}
}
}
App.ts文件
// My Account Page
let page = new MyAccount;
if (URL.checkPath('/user/myaccount')) {
page.switchTab();
}
$('.menu-link').click(page.switchTab);
試圖編譯此代碼。如果排除缺少的方法,則不會出現錯誤。這兩種方法有什麼區別?實施似乎並不重要。嘗試定義一個最簡單的例子。 –
page.switchTab()正在執行,但它傳遞給點擊處理程序時它相同的功能typeerror – ChanX