创建一个变量,该变量是一个函数,并且在该函数中有一组函数数组,我想访问第三级,但是我不能,给我发送错误,有人认为我做错了吗?
var mivarobject = function(){
// array functions
helpers = {
// functions
function1 : function(){
return 1;
},
function2 : function(){
return 2;
},
}
}
console.log(mivarobject.helpers.function1());
由此我得到以下错误:未捕获的TypeError:无法读取未定义的属性'function1'
答案 0 :(得分:2)
假设您打算将new
用作课程,则您缺少mivarobject
关键字。
此外,您正在全局声明helpers
。添加this
以将其实例化为mivarobject
的属性。
var mivarobject = function(){
this.helpers = {
function1: function(){
return 1;
}
};
};
console.log((new mivarobject).helpers.function1());
答案 1 :(得分:0)
mivarobject
是一个函数,因此您可以从中返回值,而无需访问返回值的function1
var mivarobject = function(){
let helpers = {
function1 : function(){
return 1;
}
}
return helpers
}
console.log(mivarobject().function1());
答案 2 :(得分:0)
您需要返回helpers
并致电mivarobject
:
var mivarobject = function() {
var helpers = {
function1: function() {
return 1;
},
function2: function() {
return 2;
}
};
return helpers;
};
console.log(mivarobject().function1());
答案 3 :(得分:0)
您的mivarobject
只是一个返回void
的函数-什么都没有,则mivarobject.helpers
是undefined
,因为Js中的函数没有helpers
属性。
我们有some
种方法来说明您的观点,将mivarobject
用作常规函数,当您要使用{{1}时,该函数返回helpers
对象(不是数组) },您必须使用function1
call
函数,例如:mivarobject
使用console.log(mivarobject.helpers.function1());
是我的方式,创建一个函数并立即调用它,immediate function
将成为一个对象。
mivarobject