繁体   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