簡體   English   中英

從另一個Javascript文件訪問原型函數會不斷返回“未定義”

[英]Accessing prototype function from another Javascript file keeps returning 'undefined'

我已經研究了幾個小時,查看Javascript原型訪問另一個原型函數訪問Javascript原型函數從另一個(包括自身)觸發一個原型函數無法從另一個函數調用 3-4左右的原型方法其他類似的問題,並以為“好,那看起來還不錯”,並為我的特定問題實施了一個(或三個)解決方案。 還是我曾經想過!

我有一個JS文件(從Typescript編譯),該文件包含一個AppComponent類和幾種方法(縮短版本針對我的特定麻煩):

AppComponent = (function () {
  function AppComponent() {
    var _this = this;
    this.gridNo = '1';
    //... and so on...
  }
  AppComponent.prototype.MenuSelect = function (link) {
    this.tabCount = 0;
    this.tables = [];
    utils_1.Logging(' MenuSelect: ' + JSON.stringify(link));
    var grids = link.grids;
    this.ws.emit('C:GDRDN', { ds: grids });

    // build up some HTML to make a table of data and return it to
    // the caller
    return "grid stuff!";
  };
.
.
.
}

上面的代碼已加載到Angular 2 / Node(由另一位同事編寫)中,並且在其編寫的上下文中運行良好:即,當從該同事編寫的其他組件中調用時,它顯示數據表(“網格”) TypeScript中的工作人員。

但是,當我生成菜單並嘗試直接從另一個“普通” JS文件訪問MenuSelect原型時,就像這樣……

function createWHeelNavigation() {
  basic.navigateFunction = function () {
    var grids_selected = [ 4, 11 ];

    var appcomp = new AppComponent();
    output = appcomp.MenuSelect(grids_selected);

    // minified.js function to add children content to a DOM element
    $("grid_container").add(output);

  }

  // other navigation menu functions...
}

createWHeelNavigation();

......我繼續得到“未捕獲的ReferenceError:AppComponent沒有定義”當我點擊特定 “基本”菜單項,即使根據我讀過的SO和其他地方創造的一個“新”的實例目的是訪問它的原型方法的方式

因此,在我拔出頭發回到辦公室角落的小巷中,低聲說“媽媽……”之前,我想我會把這件事傳遞給你們,好人,看看我要怎么做。 我有點懷疑我應該在某個地方使用“ this”,但是我的眼睛在交叉,希望朝正確的方向指向。 謝謝你的時間!

我繼續收到“未捕獲的ReferenceError:未定義AppComponent” w

一個常見的JavaScript訂購問題。 確保以正確的順序加載js / ts。

更多

請盡可能使用模塊。 https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM