Jak mogę zadeklarować nieoglobalne metody statyczne w JS?

foo.bar = function() {
  function testing{
    console.log("statckoverlow rocks!");
  }
  function testing2{
    console.log("testing2 funtction");
  }
}

Jak mogę zadzwonić do funkcji testów? Jestem nowicjuszem w Js.

Dzięki za pomoc.

0
Kit Ho 10 sierpień 2012, 07:59

4 odpowiedzi

Najlepsza odpowiedź

Prawdopodobnie chcesz obiektu.

foo.bar = {
  testing: function() {
    console.log("statckoverlow rocks!");
  },
  testing2: function() {
    console.log("testing2 funtction");
  }
};

Następnie zadzwoń foo.bar.testing(), na przykład.

3
Ry- 10 sierpień 2012, 04:03

Możesz zrobić tak:

foo.bar = (function() {
  var testing = function () {
    console.log("statckoverlow rocks!");
  };
  var testing2 = function () {
    console.log("testing2 funtction");
  };
  return {
    testing: testing,
    testing2: testing2
  };
}());

// call them
foo.bar.testing();
foo.bar.testing2();
1
xdazz 10 sierpień 2012, 04:03

Miałeś na myśli:

var foo = {
    bar: {
        testing: function()
        {
            console.log("statckoverlow rocks!");
        },
        testing2: function()
        {
            console.log("testing2 funtction");
        }
    }
};


foo.bar.testing();
foo.bar.testing2();
1
Marty 10 sierpień 2012, 04:03
// Constructor
function Foo() {
  var myvar = 'hey'; // private
  this.property = myvar;
  this.method = function() { ... };
}
Foo.prototype = {
  staticMethod: function() {
    console.log( this.property );
  }
}
var foo = new Foo();
foo.staticMethod(); //=> hey
0
elclanrs 10 sierpień 2012, 04:10