簡體   English   中英

無法訪問函數javascript中的函數

[英]Cannot access function inside function javascript

我試圖稍微清理一下代碼,所以創建了一些小對象或庫(按您的喜好稱呼),例如:

function myLib() {
    this.get = function() { ... };
    ...
};

問題是當我嘗試像myLib.get()那樣調用它時。 它引發以下錯誤:

Uncaught TypeError: myLib.get is not a function

我試圖將調用封裝到$(document).ready() ,但沒有幫助。

你能幫我嗎?

謝謝!

所以我創建了一些小對象或庫(隨便你怎么稱呼)

在您的情況下,您正在創建一個構造函數, myLib是一個構造function ,而不僅僅是一個function ,並且您無法直接訪問該函數的屬性和方法,這就是您獲得Exception的原因。

因此,您需要獲取myLib的實例才能調用get方法或訪問其任何成員(方法)。

 function myLib() { this.get = function() { console.log("get called!!"); }; }; let lib = new myLib(); lib.get(); 

注意:

MDN 函數參考中,您可以看到:

this關鍵字不引用當前正在執行的函數,因此即使在函數體內,您也必須按名稱引用Function對象。

myLib用於“ libary”,您想調用此libary的“ get”方法。

在您的情況下,靜態實例更好。

const myLib = {
    get:function(){},
    get2:function(){}
    ...
};
myLib.get();
myLib.get2();

您應該使用myLib作為構造函數,即:

var lib = new myLib();
lib.get();

暫無
暫無

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

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