|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
[Javascript]oggetti
Ma un oggetto di javascript non ha costruttore?
Possibile che se definisco un oggetto con dei metodi devo stare attento all'ordine in cui li inserisco? Ad esempio: Codice:
function Oggetto(){
this.avviso("ciao");
this.avviso=function(msg){
alert("msg");
}
}
Poi non riesco a rendere un metodo non accessibile dall'esterno. Se scrivo un metodo come: Codice:
var a="pippo";
function Oggetto(){
this.a="ciao";
this.metodo=function(){
alert(this.a);
}
}
Codice:
var a="pippo";
function Oggetto(){
this.a="ciao";
var metodo=function(){
alert(this.a);
}
}
Codice:
var a="pippo";
function Oggetto(){
this.a="ciao";
var metodo=function(){
alert(this.a);
}
metodo();
}
bha... |
|
|
|
|
|
#2 | |||||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
Quote:
Quote:
Quote:
Se fai: Codice:
var a="pippo"; alert (window.a);
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|||||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ti vorrei chiedere un altra cosina allora
Sto cercando di inserire un mio metodo in una funzione già fatta, in questo modo: Codice:
function A(){
alert("ciao");
}
A.prototype.B=function(){
alert("mondo");
}
Ho anche provato ad usare gli eventi ma la cosa non è pulita, ci sono eventi per così dire "spurii". Comunque in questo modo inserisco si un metodo B() nella funzione A(), ma quando viene chiamata la funzione A() non viene chiamato anche il metodo B()... c'è un modo? |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
spe forse ci sono riuscito, l'ho "incapsulata" in un altra funzione, così:
Codice:
function A(){
alert("ciao");
}
var temp=A;
function B(){
temp();
alert("mondo");
}
A=B;
A(); // stampa "ciao" "mondo"
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
mmm però nn funziona non capisco...ora non si chiudono più le TAB
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Guarda qui: Code snippets:Tabbed browser
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ti ringrazio funziona alla grande! L'unico problema è che non viene notificato nessun evento di questo tipo quando chiudo il browser con le tab ancora aperte, ma ci guarderò.
Ho un problema concettuale, ho un oggetto con diversi metodi del tipo e vorrei che quando viene istanziato mi aggiunga anche degli eventi che avessero come funzione risolutiva un metodo interno all'oggetto, ad esempio: Codice:
function Oggetto(){
this.risolvi=function(event){
this.avviso("ciao");
}
this.avviso=function(msg){
alert(msg);
}
window.addEventListener("click",this.risolvi,true);
}
var o=new Oggetto();
La domanda quindi è, come posso fare eseguire una funzione che chiami un'altra funzione, entrambe apparteneneti all'oggetto, quando si verifica un evento? Perchè se la funziona è chemata da un evento viene considerata come se fosse esterna? |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Per ora l'unica cosa che funziona è questa:
Codice:
function Oggetto(){
this.risolvi=function(event){
this.avviso("ciao");
}
this.avviso=function(msg){
alert(msg);
}
}
var o=new Oggetto();
function gestisciEvento(event){
o.risolvi(event);
}
window.addEventListener("click",gestisciEvento,true);
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:30.



















