如何在javascript中调用main函数内的函数

时间:2016-05-30 10:16:04

标签: javascript jquery html html5

function chart(){
       Barchart();
       Linechart();
       function Barchart(){
       }
       function Linechart(){
       }
}

Chart()是主要的父功能。我有两个图表功能。我只能打电话给折线图。 Chart();将执行条形图和折线图。 但我只需要打电话给折线图。

8 个答案:

答案 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();