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