function chart(){
Barchart();
Linechart();
function Barchart(){
}
function Linechart(){
}
}
Chart()
是主要的父功能。我有两个图表功能。我只能打电话给折线图。
Chart();
将执行条形图和折线图。
但我只需要打电话给折线图。
答案 0 :(得分:2)
是的,这是真的。两者都将按给定的顺序执行。你需要提供某种选择。使用if / then或其他方式。
If(myChecbox.isSelected){
barchart();}
else{
linechart();
}
问问自己,做出选择的是什么?让我知道你想出了什么。您需要将调用的函数放在方法之外......如其他帖子中所述。
答案 1 :(得分:2)
我知道只有对象函数可以调用一个特定的函数。
var chart = {
Barchart : function(){
alert('');
},
Linechart : function(){
alert('');
}
}
chart.Barchart();
答案 2 :(得分:1)
如果你想要执行内部函数,
function outer() {
function inner() {
alert("hi");
}
inner(); // call it
}
希望这有帮助。
答案 3 :(得分:1)
你应该这样做,这样你就可以很好地控制你的函数调用,或者你直接使用Linechart而不是init
var chart = (function () {
var Barchart = function () {
console.log("bar chart");
};
var Linechart = function () {
console.log("line chart");
};
var init = function () {
Linechart();
}
return {
init: init
//you can retrun Barchart or Linechart which you want to access publically
}
})();
chart.init();
答案 4 :(得分:0)
你不能!
此函数的范围仅为chart()
函数,因此它们无法在外部访问,除非您以某种方式从chart()
内部提取它们,例如返回它们。
答案 5 :(得分:0)
Barchart()
的第一次调用即可
答案 6 :(得分:0)
虽然不太常见,但嵌套功能是可行的。这是一种叫做currying的方法。你的函数Linechart()的范围是chart(),所以目前只能在那里调用它。为了使其在其他地方可用,您需要将其与函数放在一起,以便扩大范围。有点像:
function Linechart(){
alert("Line called!");
}
function chart(){
function Barchart(){
alert("Bar called!");
}
Barchart();
Linechart();
}
chart();
// Line chart on it's own
Linechart();
这意味着当你调用chart()时,会调用Linechart()和Barchart(),但你也可以自己调用Linechart()。
答案 7 :(得分:0)
我希望这些会有所帮助。
function chart() {
function Barchart()
{
alert('Barchart');
}
function Linechart()
{
alert('Linechart');
}
Barchart();
Linechart();
}
chart();