0
里面我有这样的事情:如何调用javascript函数另一个函数
var yourNamespace = {
foo: function() {
.....
},
bar: function() {
function foobar() {....
}
}
};
是否有可能为foo内部调用,在foobar的功能栏里面?
里面我有这样的事情:如何调用javascript函数另一个函数
var yourNamespace = {
foo: function() {
.....
},
bar: function() {
function foobar() {....
}
}
};
是否有可能为foo内部调用,在foobar的功能栏里面?
有了您的确切结构,你可以不但是你可以做这样的事情:
var yourNamespace = {
foo: function() {
.....
yourNamespace.foobar()
},
bar: function() {
function foobar() {....}
yourNamespace.foobar = foobar;
}
};
或者更好,(IMO):
var yourNamespace = {
foo: function() {
.....
yourNamespace.bar.foobar()
},
bar: function() {
yourNamespace.bar.foobar = function() {....}
}
};
请注意:在这两种情况下,bar()
必须先运行foo()
否则foobar
是undefined
这只是一个简单的模块模式。你应该做的是让它自己的模块,并从该模块返回foobar。例如:
var yourNamespace = {
foo: function() {
this.bar.foobar();
},
bar: {
abc: '',
foobar: function() {
console.log('do something');
}
}
};
或者你可以做更多的事情是这样的:
var yourNamespace = {
foo: function() {
var bar = this.bar();
},
bar: function() {
var abc = '';
function foobar() {
console.log('return abc or do something else');
return abc;
}
return {
foobar: foobar
}
}
};
号名为“foobar的”功能是本地分配给“栏”属性的函数。除非“bar”外部函数中的其他代码以某种方式暴露了“foobar”函数,否则它是私有的,不能从外部“bar”访问。 – Pointy
简短的回答是否定的。但是如果你对你想要达到的目标稍作解释,我们可能会给你一些很好的建议。 – light