Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [js] incapsulare il codice per limitare conflitti variabili e funzioni

    qui si parla di come 'incapsulare il codice' per limitare di avere conflitti con variabili e funzioni

    Codice PHP:
    (function() {
       var 
    'foo';
       var 
    = function() {
           
    alert(a)
       };
       var 
    = {
       
    thunk: function() {

       },
          
    baz: [falsetruefalse]
       };
    })(); 
    in questo modo come faccio a usare la funzione b, o accedere ai dati dell'array baz,

    potete brevemente spiegarmi il concetto?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se vuoi accedere ai membri privati del singleton ti servono membri pubblici

    per questo si usa questo pattern: per creare membri veramente privati,
    non esposti all' esterno se non laddove preventivato
    codice:
    var tuoNamespace=(function() {
       var a = 'foo';
       var b = function() {
           alert(a)
       };
       var c = {
       thunk: function() {
    
       },
          baz: [false, true, false]
       };
    	return {
    		attributoPubblico:'ciao',
    		metodoPubblico:function(){
    			b();
    		}
    	}
    })();
    
    tuoNamespace.metodoPubblico();
    ciao

  3. #3
    Codice PHP:
    function classe(){ 
       var 
    globale1='pippo'
       var 
    globale2='cssfile.css'
        
       function 
    changeOpac(opacity,id) { 
            var 
    obj document.getElementById(id); 
            if(
    obj!=null){     
                
    object =document.getElementById(id).style
                
    object.opacity = (opacity 100); 
                
    object.MozOpacity = (opacity 100); 
                
    object.KhtmlOpacity = (opacity 100); 
                
    object.filter "alpha(opacity=" opacity ")"
            } 
        } 

        function 
    opacity(id,opacStart,opacEnd,millisec){ 
            var 
    speed Math.round(millisec 100); 
            var 
    timer 0
            if(
    opacStart opacEnd) { 
                for(
    opacStart>= opacEndi--) { 
                    
    setTimeout("changeOpac(" ",'"+id+"')",(timer speed)); 
                    
    timer++; 
                } 
            } else if(
    opacStart opacEnd) { 
                    for(
    opacStart<= opacEndi++) 
                { 
                    
    setTimeout("changeOpac(" ",'"+id+"')",(timer speed)); 
                    
    timer++; 
                 } 
            } 
        } 


       function 
    func1(){ 
         
    opacity('gw_window'01001000); 

       } 

       function 
    init(){ 
          
    opacity('gw_window'01001000); 
       } 

    // metodo pubblico 
    this.init=init

    }
    // fine classe

    window.onload = function(){
     var 
    = new classe();
     
    a.init() 


    ho provato così, in teoria con una classe dovrei limitare il conflitto tra variabili globali e funzioni di un eventuale script inserito nella stessa pagina

    chiaramente lo script finale è molto più corposo di quello postato, il problema è che ricevo sempre l' errore che la funzione changeOpac non è definita....., il problema sembra sia la chiamata dentro setTimeout

    qualche idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.