无法访问函数javascript内的函数

时间:2017-08-04 07:39:52

标签: javascript function

我正在尝试清理我的代码,所以我创建了一些小对象或库(按你想要的方式调用),如:

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

问题是当我尝试将其称为myLib.get()时。它会引发以下错误:

Uncaught TypeError: myLib.get is not a function

我试图将调用封装到$(document).ready(),但它没有帮助。

请帮帮我吗?

谢谢!

3 个答案:

答案 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();