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

    problema con closures OO js

    Dalla closure _construct voglio accedere alla funzione identificata dalla closure _checkLogin.
    Qualcuno saprebbe illuminarmi?

    var CONST_NS = function( ){

    this._ANONYMOUS_ACCESS = "anonymous";

    };

    var Controller = function( conf ){

    var config = {"allowedAccesses":[CONST_NS._ANONYMOUS_ACCESS]};

    //Contains function name:[params]
    var bootStrapSequence = {"steps":["_checkLogin"]};

    var _construct = function( conf ){

    alert( "Controller->_construct( )");

    if( conf["allowedAccesses"] !== "undefined" ){

    config["allowedAccesses"] = conf["allowedAccesses"];

    }

    //Launches bootstrap sequence
    for( var i in bootStrapSequence["steps"] ){

    if( !eval( bootStrapSequence["steps"][i] + "( )" ) ){

    alert( "Error on: Controller->" + bootStrapSequence[i] );

    return;

    }

    alert( "Done: Controller->" + bootStrapSequence[i] );

    }

    }( conf );

    //Checks if at least one of the allowed accesses is set in session
    var _checkLogin = function( ){

    alert( "checkLogin" );

    var loggedAccesses = AccessManager.checkLogin( );

    for( var i in loggedAccesses ){

    for( var k in config.allowedAccesses ){


    if( loggedAccesses[i] == config.allowedAccesses[k] ){

    return true;

    }

    }

    }

    return false;

    };

    };

    var AccessManager = new function( ){

    var loggedAccesses = {"loggedAccesses":[CONST_NS._ANONYMOUS_ACCESS]};

    this.login = function( ){

    };

    this.logout = function( ){

    };

    this.checkLogin = function( ){

    return loggedAccesses;

    };

    };

    //Document ready
    $(document).ready( function( ){

    var pageController = new Controller( {"allowedAccesses":[CONST_NS._ANONYMOUS_ACCESS]} );

    });

  2. #2
    codice:
    var CONST_NS = function( ){ 	 	this._ANONYMOUS_ACCESS = "anonymous";	 	 };  var Controller = function( conf ){ 	 	var config = {"allowedAccesses":[CONST_NS._ANONYMOUS_ACCESS]}; 	 	//Contains function name:[params] 	var bootStrapSequence = {"steps":["_checkLogin"]}; 	 	var _construct = function( conf ){ 						 		if( conf["allowedAccesses"] !== "undefined" ){ 		 			config["allowedAccesses"] = conf["allowedAccesses"]; 		 		} 		 		//Launches bootstrap sequence 		for( var i in bootStrapSequence["steps"] ){ 			 			if( !eval( bootStrapSequence["steps"][i] + "( )" ) ){ 				 				return; 				 			} 			 			alert( "Done: Controller->" + bootStrapSequence[i] ); 			 		} 			 	}( conf );	 	 	//Checks if at least one of the allowed accesses is set in session 	var _checkLogin = function( ){ 		 		alert( "checkLogin" ); 		 		var loggedAccesses = AccessManager.checkLogin( ); 		 		for( var i in loggedAccesses ){ 						 			for( var k in config.allowedAccesses ){ 					 				 				if( loggedAccesses[i] == config.allowedAccesses[k]  ){ 					 					return true; 					 				} 				 			} 			 		} 		 		return false; 		 	}; 	 };  var AccessManager = new function( ){ 	 	var loggedAccesses = {"loggedAccesses":[CONST_NS._ANONYMOUS_ACCESS]}; 	 	this.login = function( ){ 				 	}; 	 	this.logout = function( ){ 		 	}; 	 	this.checkLogin = function( ){ 		 		return loggedAccesses; 		 	}; 	 };	  //Document ready $(document).ready( function( ){ 	 	var pageController = new Controller( {"allowedAccesses":[CONST_NS._ANONYMOUS_ACCESS]} ); 	 });

  3. #3

    risposta

    Mi rispondo da solo, devo mettere la closure da richiamare prima della chiamata ad un'altra closure nello stesso ns!

    A sto punto pero' mi serve un modo per lanciare il costruttore (pseudo tale) dopo le dichiarazioni di tutti i metodi da mettere nel bootstrap.

    Chi mi puo' aiutare?

    Va bene anche un aiuto psicologico.

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.