создайте переменную, где есть функция, а внутри этой функции есть набор функций, я хочу получить доступ к третьему уровню, но не могу, пришлите мне ошибку, у кого-то есть идея, что я делаю неправильно?
var mivarobject = function(){
// array functions
helpers = {
// functions
function1 : function(){
return 1;
},
function2 : function(){
return 2;
},
}
}
console.info(mivarobject.helpers.function1());При этом я получаю следующую ошибку: Uncaught TypeError: не удается прочитать свойство function1 неопределенного
@TylerRoper «miravobject не определен»
в коде, который вы разместили, нет массивов



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам не хватает ключевого слова new, если вы намерены использовать mivarobject в качестве класса.
Кроме того, вы объявляете helpers глобально. Добавьте this, чтобы создать экземпляр как свойство mivarobject.
var mivarobject = function(){
this.helpers = {
function1: function(){
return 1;
}
};
};
console.info((new mivarobject).helpers.function1());Это было самое надежное решение, большое спасибо
mivarobject - это функция, поэтому вы можете вернуть из нее значение, а затем вам нужно получить доступ function1 к возвращаемому значению.
var mivarobject = function(){
let helpers = {
function1 : function(){
return 1;
}
}
return helpers
}
console.info(mivarobject().function1());Вам нужно вернуться helpers и вызвать mivarobject:
var mivarobject = function() {
var helpers = {
function1: function() {
return 1;
},
function2: function() {
return 2;
}
};
return helpers;
};
console.info(mivarobject().function1());Ваша mivarobject просто функция, которая возвращает void - ничего, тогда mivarobject.helpers есть undefined, потому что функция в Js не имеет свойства helpers.
У нас есть some способы понять вашу точку зрения, используйте mivarobject как обычную функцию, функция возвращает helpers объект (не массив), когда вы хотите использовать function1, вы должны использовать callmivarobject функцию, например: console.info(mivarobject.helpers.function1());
Я использую immediate function, создаю функцию и тут же вызываю ее, mivarobject станет объектом.
var mivarobject = (function() {
// array functions
helpers = {
// functions
function1: function() {
return 1;
},
function2: function() {
return 2;
},
}
return helpers;
})();
console.info(mivarobject.helpers.function1());
@MarkMeyer отредактировано