如何将嵌套在方法内的函数调用到另一个方法中

时间:2012-12-10 23:41:57

标签: javascript methods

由于某种原因,我无法将我的设置方法中的函数调用到我的init方法中。

    // this is how I use it now(dont work)

Plugin.prototype = {

    settings: function(){

        function hello(name){
            alert('hi, '+name)
        }
    },

    init: function(){
        this.settings() 
        hello('John Doe')
    }

}

2 个答案:

答案 0 :(得分:4)

Javascript具有功能范围。如果在另一个函数中声明一个函数,它只能在外部函数内部显示。

答案 1 :(得分:1)

这可能是你的意思:

Plugin.prototype = {

    settings: function(){

    },

    hello: function(name){
        alert('hi, '+name);
    },

    init: function(){
        this.settings();
        this.hello('John Doe');
    }

};

或者,如果你想将hello()设为私有,你可以这样做:

Plugin.prototype = function(){

  var hello = function (name){
      alert('hi, '+name);
  };   

  return {
      settings: function(){
      },

      init: function(){
          this.settings();
          hello('John Doe');
      }
  };
}();

jsfiddle