我正在尝试清理我的代码,所以我创建了一些小对象或库(按你想要的方式调用),如:
function myLib() {
this.get = function() { ... };
...
};
问题是当我尝试将其称为myLib.get()
时。它会引发以下错误:
Uncaught TypeError: myLib.get is not a function
我试图将调用封装到$(document).ready()
,但它没有帮助。
请帮帮我吗?
谢谢!
答案 0 :(得分:2)
所以我创建了一些小对象或库(按你想要的方式调用)
在您创建构造函数的情况下,myLib
是构造函数而不仅仅是function
,并且您无法直接访问函数的属性和方法&# 39;为什么你得到了例外。
因此,您需要获取myLib
的实例才能调用get
方法或访问其任何成员(方法)。
function myLib() {
this.get = function() { console.log("get called!!"); };
};
let lib = new myLib();
lib.get();

注意:强>
从MDN Reference for Functions你可以看到:
this
关键字不引用当前正在执行的函数,因此您必须按名称引用Function
个对象,即使在函数体内也是如此。
答案 1 :(得分:2)
myLib用于“libary”,你想调用这个“get”的libary方法。
在您的情况下,静态实例更好。
if(isset($_POST['empre'])){
//DB QUERY
}
elseif(isset($_POST['client'])){
//DB QUERY
}
答案 2 :(得分:1)
你应该使用myLib作为构造函数,即:
var lib = new myLib();
lib.get();