Uso var
e function foo() {}
(quest'ultimo come una dichiarazione, che significa "solo" function foo() {}
senza assegnarlo), crea simboli locali. Quindi, la funzione non è disponibile al di fuori del costruttore.
Qualunque cosa si desidera esporre (rendere pubblico), è necessario assegnare a this
(o self
dato definito self = this
):
self.getName = function() {
return self.name;
};
Si noti che è già stato utilizzato name
, così ho dato funzione di un altro nome. Se si voleva fare la stringa name
locali, ed esporre la funzione, poi si può avere lo stesso nome dal momento che non c'è conflitto. Es .:
var name = "john";
self.name = function() {
return name;
};
'self.name' è una stringa' "john" 'quindi non si può invocarlo. Si noti che la funzione locale 'nome' non viene esportata da nessuna parte. – Raynos
La domanda aggiornata, ma ha fatto una risposta perfettamente valida, non ha senso, quindi è tornata indietro. – zode64