0

I create the object eqC from function ColsProt. In constructor of this function i instantiate this.colsO = {}; as empty. If i log the value - it is empty.

If i try to run function, which fills the this.colsO with values (actually it is deep nesting 5 functions) in my logs this.colsO gets filled with values before these functions are executed. It logs values already in constructor, before any function execution, but only if this function in code will be executed in feature ( if it is not executed in future, this.colsO log is empty).

The order of logs is normal, but in logs i find this.colsO values, although normally this.colsO object shall be empty till step 7.

1 constructor this.colsO=  undefined
2 constructor this.colsO= { object full of style variables, though should be empty }
2 end of constructor this.idArr= //empty
3 ColsProt.prototype.init this.colsO= { object full of style variables, though should be empty }
3  ColsProt.prototype.init   this.idArr = //empty
4 ColsProt.prototype.getVars this.colsO = { object full of style variables, though should be empty }
4f ColsProt.prototype.getVars fullOname = { object full of style variables, though should be empty }
4 ColsProt.prototype.getVars   this.idArr= //empty

// repeates several tims 
5 ColsProt.prototype.findColumns   this.idArr=loccontPck,introPck,servicesPck
5 ColsProt.prototype.findEls this.colsO = { object full of style variables, though should be empty }
5f ColsProt.prototype.findEls fullOname= //undefined
6 ColsProt.prototype.getProps ans= { object with style parameters }
6 ColsProt.prototype.getProps this.colsO= { object full of style variables, though should be empty, the ans is already part of the object, although it is not yet assigned to be }
7 ColsProt.prototype.findEls this.colsO = { object full of style variables, the ones which should be assigned, and the ones which will be assigned in future }

Actually, I need an empty this.colsO in some deeper places, but it is full of variables and I can not delete them, because deletion seems occur earlier than this.colsO gets filled with variables. Additionally to that nothing is deleted, if i try to delete the object, in it occurs a new item, named "rem".

var ColsProt = function( gO ) {

        //this.win = $(window); //the window object
        //UNC  //console.log(' From ColsProt constructor '); // ['ecols']

        this.colCss = null;
        if( (gO['colCss']!==undefined) && (gO['colCss']!==null) ) { this.colCss = gO['colCss']; } 

        this.mode = 'dev'; // 'prod'|'dev'; //the main difference is on resize events. In once case the different stylesheet is included. In another case - the stylesheet is generated and window is reset 
        if( (gO['mode']!==undefined) && (gO['mode']!==null) ) { this.mode = gO['mode']; } 

        this.oNameArr = []; ////oName of [ 'imgO', 'divO', 'oelO'] 
        this.oSelArr = [];
        var mi;
        //the names of Object which contains images, divs, other elements 
        //[ { cssSel : ['img'], oName : 'imgO' }, 
        //{  oName : 'oelO', cssSel : [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',  ' p', ' a',  ' ul',  ' ul li', ' div h1',  ' div h2', ' div h3', ' div h4', ' div //h5', ' div h6', ' div p', ' div a', ' div div a',  ' div ul', ' div ul li' ] }    // '#'+colid +' h1', 
        //{ cssSel : ['div:not(:has(img))'], oName : 'divO' } ];
        var onm, me, sels;
        if ( ( gO['oMap']!==undefined ) && ( gO['oMap']!==null) ) { 
            this.oNameArr = Object.keys( gO['oMap'] );
            for ( onm of this.oNameArr ) { 
                me = gO['oMap'][onm];
                sels = JSON.parse( JSON.stringify ( me['cssSelArr'] ) );
                this.oSelArr.push( sels ); 
            } // for ( mi of gO['oMap'] ) { 
            this.oMap = JSON.parse( JSON.stringify ( gO['oMap'] ) ); 
        }  // if ( ( gO['oMap']!==undefined ) && ( gO['oMap']!==null) ) {
        else { 
            this.oNameArr = [ 'imgO', 'divO', 'oelO' ]; 
            this.oSelArr = [ ['img'], ['div:not(:has(img))'], [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',  ' p', ' a',  ' ul',  ' ul li', ' div h1',  ' div h2', ' div h3', ' div h4', ' div h5', ' div h6', ' div p', ' div a', ' div div a',  ' div ul', ' div ul li' ] ]; 
            this.oMap = {
                //'imgO' : { cssSelArr:['img'], rules:{ adj:150, mT:0,mR:0,mB:0,mL:0,bT:0,bR:0,bB:0,bL:0,pT:0,pL:0,pB:0,pR:0} }, 
                'imgO' : { cssSelArr:['img'], rules:{} }, //adj is top and bottom padding 
                //'divO' : { cssSelArr:['div:not(:has(img))'], rules:{  mT:0,mR:0,mB:0,mL:0,bT:0,bR:0,bB:0,bL:0,pT:0,pL:0,pB:0,pR:0 }, 
                'divO' : { cssSelArr:['div:not(:has(img))'], rules:{adj:20} },
                //'oelO' : { cssSelArr : [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',  ' p', ' a',  ' ul',  ' ul li', ' div h1',  ' div h2', ' div h3', ' div h4', ' div h5', ' div h6', ' div p', ' div a', ' div div a',  ' div ul', ' div ul li' ], rules:{ adj:150, mT:0,mR:0,mB:0,mL:0,bT:0,bR:0,bB:0,bL:0,pT:0,pL:0,pB:0,pR:0} } 
                'oelO' : { cssSelArr : [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',  ' p', ' a',  ' ul',  ' ul li', ' div h1',  ' div h2', ' div h3', ' div h4', ' div h5', ' div h6', ' div p', ' div a', ' div div a',  ' div ul', ' div ul li' ], rules:{ adj:12 } }  
            };
        }



        /*this.oNameSelMap = {};
        for ( mi of this.oMap ) {
            var oName = this.oMap['oName']; 
            var cssSelArr = this.oMap['cssSel']; 
            this.oNameSelMap['oName'] = cssSelArr; 
        } */

        //class of images, which are very reduced in size, but enlarge in case of column resizing
        this.imgClass = null;
        if( (gO['imgClass']!==undefined) && (gO['imgClass']!==null) ) { this.imgClass = gO['imgClass']; } 

        //ids of topdiv elements, mostly images, where you should not apply any styling, nto to make spaces 
        this.topDivsIds=null;
        if( (gO['topDivsIds']!==undefined) && (gO['topDivsIds']!==null) ) { this.topDivsIds = gO['topDivsIds']; }

        this.stSettStr='';
        if( (gO['stSettStr']!==undefined) && (gO['stSettStr']!==null) ) { this.stSettStr = gO['stSettStr']; }  ////console.log('this.stSettStr='); //console.log(this.stSettStr);

        this.cusIdMap = null; this.cusIdArr=[]; 
        if( (gO['cusIdMap']!==undefined) && (gO['cusIdMap']!==null) ) { 
            this.cusIdMap = gO['cusIdMap']; 
            this.custIdArr = Object.keys(this.cusIdMap); 
        }

        this.styleDataFname = 'coffStyleSett170926.json';
        if( (gO['styleDataFname']!==undefined) && (gO['styleDataFname']!==null) ) { this.styleDataFname = gO['styleDataFname'] +'.json'; } 

        this.tallestColId = ""; //id of tallest column 
        this.shorterCalIdArr = [];

        this.colsOdif = {};  //this.colsOdif[id] = diff;

        this.stSettStr = '';
        if ( ( this.stSettStr!==undefined ) && ( this.stSettStr!==null ) && ( this.stSettStr.length > 0 ) ) { this.colsSettO = JSON.parse( this.stSettStr ); } 

        //this.colsSettO = { ecols:{}, objectName:'colsSettO' }; //contains settings data

        //this.colsO = { ecols:{}, objectName:'colsO' }; //is filled with current data in function init() -- //contains id : { hBefore, hAfter, bhighest, imgFallArr
        console.log('1 constructor this.colsO='); console.log(this.colsO); //empty
        this.colsO = {};  
        console.log('2 constructor this.colsO='); console.log(this.colsO); // filled with variables
        //this.colsO['ecols'] = {};//contains this.colsO['ecols'][id] [ parameters for equal columns, like diff, L ]..  
        var on;
        for ( on of this.oNameArr ) { this.colsO[on] = {}; }

        //console.log(' before the init, in constructor this.idArr=' + this.idArr.toString() ); undefined
        this.idArr = []; //ids of columns
        console.log('2 end of constructor this.idArr=' + this.idArr.toString() ); 

        //this.oiDivAdj = 20; //maximum size to increase the div ( currently is applied to margin// REFACTOR to be able to apply to border or to padding 
        //this.oiAdj = 12; //maximum size to increase the element. Make different size for p, ul li, a etc.... 
        //this.imgAdj = 200; //amoun to strech, add borders, etc to images 

        //UNC  //console.log( 'this.colsSettO=' ); //console.log(this.colsSettO);   
        //UNC  //console.log( 'this.colsO=' ); //console.log(this.colsO);


} // var ColsProt = function( gO ) {


    ColsProt.prototype.init = function() { 
        console.log( ' 3 ColsProt.prototype.init this.colsO=' ); console.log( this.colsO );
        console.log( ' 3  ColsProt.prototype.init   this.idArr=' + this.idArr.toString() ); 
        this.getVars( this.colsO );
    }

    ColsProt.prototype.getVars = function (fullOname) {
        console.log( ' 4 ColsProt.prototype.getVars this.colsO=' ); console.log( this.colsO );
        console.log( ' 4f ColsProt.prototype.getVars fullOname=' ); console.log( fullOname );
        console.log( ' 4 ColsProt.prototype.getVars   this.idArr=' + this.idArr.toString() ); 
        //this.findColumns();
        //this.findColumns2(this.colCss);
        this.findColumns(this.colCss);

        var colid, oName, css, cssStr;
        for( colid of this.idArr ) {  
            for ( oName of this.oNameArr ) { 
                if ( ( this.colsO[oName]===undefined ) || ( this.colsO[oName]===null ) ) {  this.colsO[oName] = {};  }
                if ( ( this.colsO[oName]['cssSelArr']===undefined ) || ( this.colsO[oName]['cssSelArr']===null ) ) {  
                    var cssSelArr = this.oMap[oName]['cssSelArr'];
                    ////console.log( '154 From   ColsProt.prototype.getVars, before this.findEls.   cssSelArr = ' ); //console.log( cssSelArr );   
                    this.findEls( { colid:colid, cssSelArr:cssSelArr, oName:oName, fullOname:fullOname } ); 
                } // if ( ( this.colsO[oName]['cssSelArr']===undefined )

            } // for ( oName of [ 'imgO', 'divO', 'oelO'] ) {
        } // for( let colid of this.idArr ) {
    }

    ColsProt.prototype.findColumns = function() {  
        var css;
        for( css of this.colCss ) {
            var that = this;
            $(css).each( function () {
                var id = $(this).attr('id'); 
                that.idArr.push(id);
            }); // $(css).each( function () {
        } // for( css of this.colCss ) {
        console.log( ' 5 ColsProt.prototype.findColumns   this.idArr=' + this.idArr.toString() ); 
    } //ColsProt.prototype.findColumns = function() {




////get data for oName and colid. 
//(i) this can be used for downlaoding to StyleSettingsFile ( fullOname = , 
//(ii) or For adjusting style settings 
//cold - id of the column div.pck
//Gell all images
//var css =  [ '#'+colid +' img'];
//var css = ['#'+colid +' div:not(:has(img))'];
//var css = this.oiEls  //for ( sel of this.oiEls ) {   
//oName = imgO | divO | oiO
//fullOname - object, which will containt the selected information
ColsProt.prototype.findEls = function( gO ) {

    console.log( ' 5 ColsProt.prototype.findEls this.colsO=' ); console.log( this.colsO ); //filled, but hsould be empty
    console.log( ' 5f ColsProt.prototype.findEls fullOname=' ); console.log( fullOname ); //filled, but hsould be empty

    var colid, css, oName, fullOname; var berr = false;

    if( (gO!==undefined) && (gO!==null) ) { 

        if ( ( gO['colid']!==undefined) && (gO['colid']!==null) ) {  
            colid = gO['colid']; } else { berr = true; }
        if ( ( gO['cssSelArr']!==undefined) && (gO['cssSelArr']!==null) ) {  
            css = gO['cssSelArr']; } else { berr = true; }
        if ( ( gO['oName']!==undefined) && (gO['oName']!==null) ) {  
            oName = gO['oName']; } else { berr = true; }
        if ( ( gO['fullOname']!==undefined) && (gO['fullOname']!==null) ) {  
            fullOname = gO['fullOname']; } else { berr = true; }

    } // if( (gO!==undefined) && (gO!==null) ) { 
    else { 
        berr = true; 
        //UNC //console.log(' ERROR, ERROR '); 
    }

    if(!berr) {

        //UNC //console.log( '349 From   ColsProt.prototype.findEls    colid='+colid+',    css='+css+',  oName='+oName );

        // find elements for given oName and columnid //oName is the name of css rule, like 'img', 'ul', etc... 
        var citem;
        var tmpO = {}; var tmpOcss = {};

        //remove the same elements
        var uOcss = {}; var uO = {}; 
        var int, inu;

        //push to this.fullOname[oName][colid]
        var iu, citem;
        var selO = {}; var selOcss = {};
        var cnt = 0;

        for ( citem of css ) {

            var that = this;  

            $( '#' + colid).find(citem).each( function() {

                cnt++;
                if( $(this).length > 0 ) { 

                    if( $(this).length == 1 ) { 
                        tmpO[cnt] = $(this);
                        tmpOcss[cnt] = citem;
                    } // if( $(this) == 1 ) { 

                    //separate between different items, and items having the same selector like ul li
                    else if ( $(this).length > 1 ) {

                        var elemcopy = $(this); 
                        $(this).each ( function() {    
                            var that = $(this);
                            $(elemcopy ).each ( function() {  
                                var buniq = true; 
                                ////console.log( '140 that=' ) ; //console.log( that ); 
                                ////console.log( '140 this=' ) ; //console.log( $(this) ); 
                                //UNC //console.log( '349 citem='+citem+'  !that.is( $(this) ) =' ); //console.log( !that.is( $(this) ) ); 
                                if( !that.is( $(this) ) ) { 
                                    tmpO[cnt] = $(this);
                                    tmpOcss[cnt] = citem;
                                    buniq = false;  
                                } // if( !that.is( $(this) ) )  { 
                                if(buniq) { 
                                    tmpO[cnt] = $(this);
                                    tmpOcss[cnt] = citem;
                                } // if(buniq) { 

                            } ); // $(elem).each ( function() { 
                        } ); // $(elem).each ( function(elem) {

                    } // else if ( elem.length > 1 ) { 
                } // if( $(this) > 0 ) { 
            } ); // $( css ).each( function() { 
        } // for (citem of css ) {

        ////console.log('tmpArr');  //console.log(tmpArr);
        //UNC //console.log('tmpO');  //console.log(tmpO);
        ////console.log('tmpOcss');  //console.log(tmpOcss); //  


        //remove the same elements
        for ( int of Object.keys(tmpO) ) {
            var elt = tmpO[int];
            var cc = tmpOcss[int];  //css condition
            var L = Object.keys(uO).length;
            if( L > 0 ) {
                var bnew = true;
                //for ( let elu of uArr ) {
                for ( let inu of Object.keys(uO) ) {
                    var elu = uO[inu];
                    if ( elt.is(elu) ) { bnew = false; } 
                    // removes the same parent chldrens // if ( $(e1).parent().children().is($(e2)); )
                    //because you need to apply margin only once to div div a, not as many times as there are <a> elements 
                    if ( elt.parent().children().is(elu) ) { bnew = false; } 

                } // for ( let elu of uArr ) {
                if ( bnew ) { 
                    //uArr.push(elt); 
                    uOcss[int] = cc; uO[int] = elt; 
                }
            } // if ( uArr.length > 0 ) {
            else { 
                //uArr.push(elt) 
                uOcss[int] = cc; uO[int] = elt;
            }
        } // for ( let elt of tmpArr ) {
        //UNC //console.log('uO');  //console.log(uO);
        //UNC //console.log('uOcss');  //console.log(uOcss);    

        ////console.log('uArr'); //console.log(uArr);
        ////console.log('uOcss'); //console.log(uOcss); //console.log('uO'); //console.log(uO);
        //gett properties and push to fullArr 

        if( (fullOname[oName]===undefined) || (fullOname[oName]===null) ) {
            fullOname[oName] = {};
        }

        if( (fullOname[oName][colid]===undefined) || (fullOname[oName][colid]===null) ) {
            fullOname[oName][colid] = {};
        }

        if( (fullOname['map']===undefined) || (fullOname['map']===null) ) {
            fullOname['map'] = {};
        }

        if( (fullOname['map'][oName]===undefined) || (fullOname['map'][oName]===null) ) {
            fullOname['map'][oName] = {};
        }

        if( (fullOname['map'][oName][colid]===undefined) || (fullOname['map'][oName][colid]===null) ) {
            fullOname['map'][oName][colid] = {};
        }

        var idMap = {};
        var cssMap = {};
        var classMap = {}; 
        var id, css, cls; 

        for ( iu of Object.keys( uO ) ) {

            var el = uO[iu]; //elements
            var css = uOcss[iu]; 
            ////console.log('289 css=' + css ); 
            var propO = this.getProps( {el:el,css:css} );

            //UNC //console.log('propO='); //console.log(propO);
            //fullOname[oName][colid].push( propO ); 
            if(iu=="rem") { console.log("ERROR iu = rem propO="); console.log(propO); } 
            fullOname[oName][colid][iu] = propO;

            if( (propO['id']!==undefined) && (propO['id']!==null) ) {
                id = propO['id'];
                if( (fullOname['map'][oName][colid]['id']==undefined) || (fullOname['map'][oName][colid]['id']==null) ) { fullOname['map'][oName][colid]['id'] = {}; }
                if( (fullOname['map'][oName][colid]['id'][id]==undefined) || (fullOname['map'][oName][colid]['id'][id]==null) ) { fullOname['map'][oName][colid]['id'][id] = []; }
                fullOname['map'][oName][colid]['id'][id].push(iu);
            }

            if( (propO['css']!==undefined) && (propO['css']!==null) ) {
                css = propO['css'];
                if( (fullOname['map'][oName][colid]['css']==undefined) || (fullOname['map'][oName][colid]['css']==null) ) { fullOname['map'][oName][colid]['css'] = {}; }
                if( (fullOname['map'][oName][colid]['css'][css]==undefined) || (fullOname['map'][oName][colid]['css'][css]==null) ) { fullOname['map'][oName][colid]['css'][css] = []; }
                fullOname['map'][oName][colid]['css'][css].push(iu); 
            }

            if( (propO['cls']!==undefined) && (propO['cls']!==null) ) {
                cls = propO['cls']; 
                if( ( fullOname['map'][oName][colid]['setCl']==undefined) || (fullOname['map'][oName][colid]['setCl']==null) ) { fullOname['map'][oName][colid]['setCl'] = {}; }
                if( ( fullOname['map'][oName][colid]['setCl'][cls]==undefined ) || ( fullOname['map'][oName][colid]['setCl'][cls]==null ) ) { fullOname['map'][oName][colid]['setCl'][cls] = []; } 
                fullOname['map'][oName][colid]['setCl'][cls].push(iu);
            } // if( (propO['cls']!==undefined) && (propO['cls']!==null) ) {

        } // for ( int of Object.keys(tmpO) ) {


        if( (fullOname['ecols']===undefined) || (fullOname['ecols']===null) ) { fullOname['ecols']={}; }  
        if( (fullOname['ecols'][oName]===undefined) || (fullOname['ecols'][oName]===null) ) { fullOname['ecols'][oName]={}; }
        if( (fullOname['ecols'][oName][colid]===undefined) || (fullOname['ecols'][oName][colid]===null) ) { fullOname['ecols'][oName][colid]={}; }
        fullOname['ecols'][oName][colid]['elArrL'] = Object.keys( uO ).length;


    }// if berr

    //console.log('ColsProt.prototype.findEls = fullOname=');  console.log(fullOname); 
    console.log( ' 7 ColsProt.prototype.findEls this.colsO=' ); console.log( this.colsO ); //here should be filled
    console.log( ' 7f ColsProt.prototype.findEls this.colsO=' ); console.log( this.colsO ); //here should be filled

}; // ColsProt.prototype.findEls = function(colid, css, oName ) {

ColsProt.prototype.getProps = function( gO ) { 



    var el, css; var berr = false;

    if ( (gO!==undefined) && (gO!==null) ) {  

        if ( ( gO['el']!==undefined) && (gO['el']!==null) ) {  
            el = gO['el']; } else { berr = true; }
        if ( ( gO['css']!==undefined) && (gO['css']!==null) ) {  
            css = gO['css']; } else { berr = true; }

    } // if( (gO!==undefined) && (gO!==null) ) { 
    else { berr = true; 
        console.log(' ERROR , ERROR '); 
    }




    if(!berr) {

        var mT = parseInt ( el.css('margin-top') );
        var mR = parseInt ( el.css('margin-right') );

        var mB = parseInt ( el.css('margin-bottom') );
        var mL = parseInt ( el.css('margin-left') );
        var bT = parseInt ( el.css('border-top') );
        var bR = parseInt ( el.css('border-right') );
        var bB = parseInt ( el.css('border-bottom') );
        var bL = parseInt ( el.css('border-left') );

        var pT = parseInt ( el.css('padding-top') );
        var pR = parseInt ( el.css('padding-right') );
        var pB = parseInt ( el.css('padding-bottom') );
        var pL = parseInt ( el.css('padding-left') );

        var id = el.attr( 'id' );
        var cls = el.attr( 'class' );
        var width = el.width();
        var height = el.height();
        var boxSizing = el.attr( 'box-sizing' );

        var css = css;

        var ans = { mT:mT, mR:mR, mB:mB, mL:mL, bT:bT, bR:bR, bB:bB, bL:bL, pT:pT, pL:pL, pB:pB, pR:pR, id:id, cls:cls, width:width, height:height, boxSizing:boxSizing, css:css };

        console.log( ' 6 ColsProt.prototype.getProps ans=' ); console.log( ans );
        console.log( ' 6 ColsProt.prototype.getProps this.colsO=' ); console.log( this.colsO ); //filled, but hsould be empty

        return  ans;

    }

}; // ColsProt.prototype.getProps = function( el) { 

//THe part of main script, which initialize the object

    var oMap = {   
                //'imgO' : { cssSelArr:['img'], rules:{ adj:150, mT:0,mR:0,mB:0,mL:0,bT:0,bR:0,bB:0,bL:0,pT:0,pL:0,pB:0,pR:0} }, 
        imgO : { cssSelArr:['img'], rules:{} }, //adj is top and bottom padding 
                //'divO' : { cssSelArr:['div:not(:has(img))'], rules:{  mT:0,mR:0,mB:0,mL:0,bT:0,bR:0,bB:0,bL:0,pT:0,pL:0,pB:0,pR:0 }, 
        divO : { cssSelArr:['div:not(:has(img))'], rules:{adj:20} },
                //'oelO' : { cssSelArr : [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',  ' p', ' a',  ' ul',  ' ul li', ' div h1',  ' div h2', ' div h3', ' div h4', ' div h5', ' div h6', ' div p', ' div a', ' div div a',  ' div ul', ' div ul li' ], rules:{ adj:150, mT:0,mR:0,mB:0,mL:0,bT:0,bR:0,bB:0,bL:0,pT:0,pL:0,pB:0,pR:0} } 
        oelO : { cssSelArr : [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',  ' p', ' a',  ' ul',  ' ul li', ' div h1',  ' div h2', ' div h3', ' div h4', ' div h5', ' div h6', ' div p', ' div a', ' div div a',  ' div ul', ' div ul li' ], rules:{ adj:12 } }  
    }; 

   var cusIdMap = {};

    var topDivsIds = [ 'loccontPck', 'locontPckItem', 'introPck', 'imgPckiEyePckItem', 'servicesPck',  'carePgPckItem' ]; //do not apply to values for these items 

    var botDivsIds = []; 

    //var stSettStr = from C:\Bitnami\wampstack-7.0.22-1\apache2\htdocs\type70823\src\HotColImgBundle\Resources\actions\person\certifOfficer2\settings\StyleData_certifO.json
    //var stSettStr = "";
    var stSettStr =$( "#stSettStr" ).text();
    //console.log('stSettStr='); console.log(stSettStr);

 var eqC = new ColsProt( { colCss:['.pck' ], cusIdMap:cusIdMap, oMap:oMap, topDivsIds:topDivsIds, botDivsIds:botDivsIds, stSettStr:null, styleDataFname:'coffStyleSett170926', mode:'dev' } );

eqC.init();
olga
  • 959
  • 1
  • 15
  • 42
  • Please reduce this to a minimal, verifiable example. – Jared Smith Sep 27 '17 at 13:00
  • The same is with and without let keyword. – olga Sep 27 '17 at 13:01
  • In your previous and now deleted question [How to control the order and timing the javascript functions and constructors are invoked?](https://stackoverflow.com/questions/46445230), I wrote this comment: Do you see those properties of the object at the time you expand (click on that arrow) in the console of the developer tools? It might be a duplicate to [Weird behavior with objects & console.log](https://stackoverflow.com/questions/23429203) – t.niese Sep 27 '17 at 13:09
  • There is no solution for the `[...]in my logs this.colsO gets filled with values before these functions are executed.[...]` that can be written, because it is related to how the `console.log` works, the values are added later do not exists at the time when you do the logging.Then the reason is explained in the link. If you want to see the acutal value at the time when it is logged, then open the debugger and set a breakpoint. – t.niese Sep 27 '17 at 13:29
  • Yes the answer was in console.log : https://stackoverflow.com/questions/23429203/weird-behavior-with-objects-console-log . If i log `console.log( JSON.parse( JSON.stringify(this.colsO)) );` in constructor - the object is empty. Thanks for T.niese – olga Sep 27 '17 at 13:31

0 Answers0