如何从外面访问javascript中的innerFunction()

时间:2016-12-28 11:22:25

标签: javascript jquery

var myName = {
        name : 'Rakesh',
        yearOfBirth : '1981',
        calculateAge : function(){
            console.log(this);
            console.log(2016 - this.yearOfBirth);

            function innerFunction(){
                console.log("Hello World");
            }
            innerFunction();
        }

    }

2 个答案:

答案 0 :(得分:0)

Javascript具有功能范围。所以,通常你不能从外面访问javascript中的innerFunction()。

除非您将该函数附加到外部对象。

var dummy = {};

var myName = {
            name : 'Rakesh',
            yearOfBirth : '1981',
            calculateAge : function(){
                console.log(this);
                console.log(2016 - this.yearOfBirth);

                function innerFunction(){
                    console.log("Hello World");
                };

                innerFunction();

                dummy.innerFunction = innerFunction;

            }

        }

// Then you can do
myName.calculateAge(); // After you run this line, you will have dummy.innerFunction available
dummy.innerFunction();

这是一种非常愚蠢的方式。

答案 1 :(得分:0)

有很多方法可以做到这一点,一个是 -

var myName = {
  name: 'Rakesh',
  yearOfBirth: '1981',
  calculateAge: function() {
    console.log(this);
    console.log(2016 - this.yearOfBirth);
    function innerFunction() {
      console.log("Hello World");
    };
    return innerFunction;
  }
}

myName.calculateAge()();