[英]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.