Я пытаюсь немного очистить свой код, поэтому я создаю небольшие объекты или библиотеки (назовите его так, как вы хотите), например:
function myLib() {
this.get = function() { ... };
...
};
Проблема в том, когда я пытаюсь называть его как myLib.get()
. Это вызывает следующую ошибку:
Uncaught TypeError: myLib.get is not a function
Я попытался инкапсулировать вызов в $(document).ready()
, но это не помогло.
Не могли бы вы мне помочь?
Спасибо!
myLib используется для "libary", и вы хотите назвать этот метод get get libary.
Статический экземпляр лучше в вашем случае.
const myLib = {
get:function(){},
get2:function(){}
...
};
myLib.get();
myLib.get2();
поэтому я создаю небольшие объекты или библиотеки (назовите его так, как вы хотите)
В вашем случае вы создаете конструктор, myLib
- это конструктор, а не только function
, и вы не можете напрямую обращаться к свойствам и методам функции, почему вы получили исключение.
Поэтому вам нужно получить экземпляр myLib
, чтобы вызвать метод get
или получить доступ к любому из его элементов (методов).
function myLib() {
this.get = function() { console.log("get called!!"); };
};
let lib = new myLib();
lib.get();
Замечания:
И из Справочника MDN для функций вы можете видеть, что:
this
ключевое слово не относится к функции исполняемой в данный момент, так что вы должны ссылаться наFunction
объектов по имени, даже в теле функции.
Вы должны использовать myLib как конструктор, то есть:
var lib = new myLib();
lib.get();
myLib
вmyLib.get()
?