[Javascript] Portare variabile in una funzione esterna al suo scope

ken_korn

Nuovo Utente
27 Apr 2017
14
2
3
Chiedo perdono per il titolo ermetico ed eventualmente per l'errata terminologia, provvederò al più presto a modificarlo appena avrò capito il problema.
Non avendo ben capito nè come fare, nè precisamente di quale aspetto di Javascript si tratta (se di scope, se di this o altro), posto direttamente il mio codice:
Codice:
function Log(x){
    console.log(x);
};

function a(){
    
    var p = 5;
    Log.call(p);
    
};

a();

Vorrei portare la variabile "p" nella callback Log().
Oltre a un semplice codice funzionante mi piacerebbe capire anche il suo funzionamento.
Ringrazio in anticipo chi avrà la pazienza di aiutarmi.
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
436
73
28
Oltre a un semplice codice funzionante mi piacerebbe capire anche il suo funzionamento.

Ciao, mi scuso in anticipo ma mi preme fare una piccola premessa prima di darti qualche risposta tecnica: la tua richiesta non è inquadrabile solo da un punto di vista tecnico/pratico (cioè non parliamo di un qualche problema tecnico sul tuo script) ma, secondo quanto hai scritto qui, è chiaro che ti mancano diverse basi riguardo la programmazione JavaScript che sono più che altro teoriche e, in genere, apprendibili con lo studio di guide, manuali, tutorial, ecc. Pertanto è difficile trattare l'argomento in oggetto senza rischiare di cadere in una relazione di tipo tutor-allievo (situazione da evitare in un forum pubblico come questo).

Per chiudere con la premessa, senza alcuna offesa ma giusto per chiarire, in altri contesti simili avresti potuto ricevere una semplice risposta del tipo "RTFM"; fondamentalmente ciò che ti ha risposto marino51 (che quoto), anche se lui è stato comunque più educato e clemente nel proporti da quale parte iniziare a leggere.

Venendo alla parte tecnica (cerco di essere il più sintetico possibile):

- Il termine callback non è adatto in questo specifico caso (vedi guida). La tua è meglio definirla semplicemente "funzione".

Vorrei portare la variabile "p" nella callback Log().
- per passare un qualsivoglia "dato" ad una qualsiasi funzione, basta passarlo come parametro richiamando la funzione stessa secondo la semplice sintassi tuaFunzione(datoDaPassare); (vedi guida)
Nel tuo caso dovresti avere una cosa del tipo:
Codice:
function a(){
   var p = 5;
   Log(p);
};

Occhio però, in questo caso tu stai sostanzialmente passando il valore della variabile p, non il suo "riferimento". Cioè la variabile p non sarà comunque "visibile" dentro la funzione Log() ma il suo valore (secondo il tuo esempio) verrà passato alla variabile x, che è un argomento della funzione Log() e sarà quindi una variabile locale dentro tale funzione. Se invece vuoi che p sia visibile dentro la funzione Log(), e quindi direttamente accessibile dentro questa, potresti definire p in modo globale (vedi guida proposta da marino51).

- L'uso del metodo call() non ha alcun senso in questo caso, non capisco perché tu lo stia usando (vedi guida).
Se il tuo intento è quello di capire come funziona, e in quali contesti usare tale metodo, spero che le guide proposte ti aiutino in qualche modo ad appianare qualche carenza. Ad ogni modo, se trovi realmente difficoltà pratiche, sarebbe opportuno riformulare la richiesta in modo più specifico, magari definendo meglio il contesto di utilizzo e l'obiettivo che vorresti raggiungere.

Buon proseguimento.
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Creare un banner temporaneo JavaScript Javascript 0
S Impossibile scorrere un oggetto in JavaScript Javascript 0
N Passare array da php a javascript PHP 5
L Quiz javascript funzionante da migliorare Javascript 0
P errore 404 con javascript Javascript 2
D aiuto funzioni javascript Javascript 1
M Upload immagine con javascript problemi con FormData() Javascript 1
L countdown multiplo javascript Javascript 1
S Problemi Javascript + Aruba Javascript 2
M Inviare un file su un server remoto con JavaScript Javascript 0
T a href="javascript:;" Javascript 1
F Creare elementi html con javascript Javascript 3
A pulsante di update campo mysql con javascript Javascript 2
8 Javascript - PDF Form Javascript 0
B javascript per problemi con pdf e Safari Javascript 0
N informazione javascript Programmazione 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
P javascript:document.forms Javascript 7
S Consiglio esercizio Javascript Javascript 2
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
P Passaggio id php a javascript PHP 6
R Confrontare il dominio di una mail con una stringa contenente un dominio personalizzato, tutto ciò in php o javascript PHP 0
E lettura da un Database con Javascript jQuery 2
V TRIS in javascript Javascript 1
IClaude Funzione Javascript Javascript 8
Alex_70 Javascript date color Javascript 3
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
I Passare dei parametri in javascript PHP 0
Shyson Meglio Javascript o HTML? Javascript 4
G Problema verifica palindromo e verifica pari e dispari javascript Javascript 0
M Chiamare pagina php da javascript Javascript 8
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
D Javascript per il download dei dati Javascript 0
grgfede Problema javascript con aruba Javascript 1
R Cerco supporto in programmazione javascript Offerte e Richieste di Lavoro e/o Collaborazione 0
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
W Modificare il Type di un Input box in javascript ovunque si trovi Javascript 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
G Quiz Javascript Javascript 4
A [Javascript] Scrittura su più campi contemporaneamente Javascript 18
F classic asp popolare combo box javascript Presentati al Forum 1
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
F [Javascript] comando innerHTML non funziona Javascript 5
alexice51 proggrammi per scrivere in javascript? Javascript 3
max1974 [Javascript] Accordion aria-exspanded Javascript 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
O [Javascript] Conflitto Jquery: forse... Javascript 0
M [Javascript] Canvas js css Javascript 1

Discussioni simili