Javascript OOP

di il
5 risposte

Javascript OOP

Ciao ho un quesito che non riesco a capire
mettiamo che ho una funzione in questo modo

function funzione(option) {

var abc = option.dato;

// qui il dubbio, se io inserisco una funzione in questo modo

var def = ... una funzione con dei valori di ritorno

this.test : function() {
def.abc; // qui eseguio la funzione definita da def ma non mi funziona
}
}


è possibile fare una cosa del genere:
usare una funzione definita in un oggetto js da var

5 Risposte

  • Re: Javascript OOP

    Ciao, la variabile def contiene una funzione, quindi va usata come se fosse una funzione.
    
    var myFunc = function(param1, param2) {
       ...
    };
    
    myFunc('qwe', 'rty');
    
  • Re: Javascript OOP

    Si si lo so, solo che non funzione perchè il codice che ho adevvo è
    
    var maptiler = new google.maps.ImageMapType({
    	getTileUrl : function(coord, zoom) {
    		var proj = map.getProjection();
    		var tileSize = 256 / Math.pow(2, zoom);
    		var tileBounds = new google.maps.LatLngBounds(proj.fromPointToLatLng(new google.maps.Point(coord.x * tileSize, (coord.y + 1) * tileSize)), proj.fromPointToLatLng(new google.maps.Point((coord.x + 1) * tileSize, coord.y * tileSize)));
    		if (mapBounds.intersects(tileBounds) && (zoom >= mapMinZoom) && (zoom <= mapMaxZoom))
    			return "/copertura/tile_rect/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
    		else
    			return "http://www.maptiler.org/img/none.png";
    	},
    	tileSize : new google.maps.Size(256, 256),
    	isPng : true
    });
    
    ed io dovrei eseguirlo dentro la mia funzione facendo

    this.test = {
    test : function() {
    maptiler.setOpacity(0);
    }
    }

    solo che non fa nulla.....
  • Re: Javascript OOP

    Con quel codice inserisci dentro a "this" (che sarebbe cosa? L'imageMapType? La funzione getTyleUrl?) la proprietà "test" che è un oggetto che a sua volta all'interno ha un campo test che è una funzione. Di conseguenza la dovresti chiamare come this.test.test()
  • Re: Javascript OOP

    Si la chiamo cosi allora, ma non mi esegue maptiler.setOpacity(0); che è dentro
  • Re: Javascript OOP

    Prova a metterci dentro un console.log('foo'); e vedi se ti stampa qualcosa nella console. Se sì allora viene eseguito anche il metodo sul maptiler, altrimenti ci deve essere qualche altro problema
Devi accedere o registrarti per scrivere nel forum
5 risposte