Cela dépend de la façon dont vous voulez configurer la première fonction et comment vous voulez y accéder. Fondamentalement, la troisième méthode est privée à la première. Vous aurez besoin d'une méthode publique au premier rang pour appeler le troisième. Cette méthode serait appelée par seconde.
Il existe différentes façons de le faire, celui qui vient à l'esprit est ...
Edit: Je l'ai appelé les paramètres un peu mieux, de cette façon son pas « PARAM » et encore.
function first()
{
// define first's private
var third = function(third_param)
{
alert(third_param);
}
// define first's public that calls the private
this.callThird = function (call_third_param)
{
third(call_third_param);
}
}
function second()
{
// get an instance of first
var temp = new first();
// call the public method on it
temp.callThird('argument');
}
Si vous ne se soucient pas de troisième étant privé, vous pouvez faire
function first() { }
// public method
first.prototype.third = function(third_param)
{
alert(third_param);
}
function second()
{
// get an instance of first
var temp = new first();
// call the public method on it
temp.third('argument');
}
ou, de cette façon, c'est pas non plus en utilisant privates
function first()
{
// the "this", makes it public
this.third = function(third_param)
{
alert(third_param);
}
}
function second()
{
// get an instance of first
var temp = new first();
// call the public method on it
temp.third('argument');
}
Si vous essayez pour faire juste un genre d'espace de noms, vous pouvez le faire (pas de privates aussi)
// define an object and name it first
var first =
{
// give first a public variable but make it a function with an arg
third : function(third_param)
{
alert(third_param);
}
}
function second()
{
// call the third method on the first variable
first.third('argument');
}
Mais sans doute la meilleure façon est via des espaces de noms
var first = (function() {
// define first's private function, store it in 'third', a private variable
var third = function (third_param) {
alert(third_param);
};
// return this object to the 'first' variable
return { // define first's public that calls the private
'callThird': function (call_third_param) {
third(call_third_param);
}
};
}()); // this line runs the function, closure'ing over the privates and
// returning an object (that has access to the privates) to the 'first' variable
function second() {
// usage:
first.callThird("Hello World!");
}
Qu'est-ce qui se passe incorrectement? –
@james, troisième est une méthode privée dans le premier et le second ne peut pas l'appeler –
Je veux juste savoir ce qui se passe. :) Ont-ils l'exécuter et obtenir une erreur? –