Почему при отправке функции в качестве своиства объекта она сразу выполняется?

Пытаюсь передать в функцию, объект с своиствами из которых несколько переменных и 4 функции КоллБэк - которые в зависимости от результата выполнения будут выполнятся. Однако проблема в том что при передачи функции в качестве своиств объекта они сразу же выполняются. Код вызова функции и сама функция.

var developermode = true;
function ajax(data){
    data            = typeof data   == 'object' ? data          : {};
    data.object     = data.object               ? data.object   : 'app';
    data.action     = data.action               ? data.action   : 'haveinews';
    data.async      = data.async                ? data.async    : true;
    data.data       = data.data                 ? data.data     : {};
    data.devor      = device.orientation;
    data.devty      = device.type;
    data.devos      = device.os;
    function successDefault(datas){
            if(typeof datas == 'undefined'){
                if(developermode)console.log(data);
                if(developermode)console.log(datas);
            }else
            if(typeof datas == 'object'){
                if(developermode)console.log(datas);
                if(typeof datas.message != 'undefined'){
                    alerts(datas.status,datas.message);
                }else{
                    
                }
            }
        };
    function existsDefault(datas){
            if(typeof datas == 'undefined'){
                if(developermode)console.log(data);
                if(developermode)console.log(datas);
            }else{
                if(typeof datas == 'object'){
                        if(developermode)console.log(datas);
                        if(typeof datas.message != 'undefined'){
                            alerts('warning',datas.message);
                        }else{

                        }
                    }    
            }
    }
    //var exists    = typeof data.exists == 'function' ? data.exists : function(datas){ 
    $.ajax({
            type:'POST',
            data: data,
            async: data.async,
            success: function(datas){
                if(IsJsonString(datas)){
                    datas = JSON.parse(datas);
                    if(typeof datas.status !='undefined'){
                            //console.log(datas.status);
                        if(datas.status == 'success'){
                            if(typeof data.success == 'function'){
                                console.log('success function are executed: '+datas.status);
                                data.success(datas);
                            }else{
                                successDefault(datas);
                            }
                        }else{
                            if(typeof data.exists == 'function'){
                                console.log('exists function are executed: '+datas.status);
                                data.exists(datas);
                            }else{
                                existsDefault(datas);
                            }
                        }
                    }else{
                        if(developermode)console.log(datas);
                    }  
                }else{
                    if(datas == "Dont have permision for this site."){
                        function lockscreen(){
                            lockscreenUserSession();
                            let success = function(d){console.log('success1');},
                                exists  = function(d){console.log(d);},
                                success2= function(d){console.log('success2');},
                                ex = function(){console.log('ex')};
                            $('.card-user-logout button[id=button-addon2]').on('click',function(){
                                ajax({
                                    action:'login',
                                    email:$('.card-user-logout [id=useremail]').text(),
                                    password:$('.card-user-logout input[aria-label=Password]').val(),
                                    devos:device.os,
                                    devor:device.orientation,
                                    devty:device.type,
                                    //success:function(datas){removeLockscreenUserSession();}
                                    success:success,
                                    success2:success2,
                                    exists:exists,
                                    ex:ex
                                });    
                            })
                            
                        }
                        lockscreen();
                    }else{
                        if(developermode)console.log(datas);
                        if(developermode)console.log(typeof datas);
                    }
                    
                }
                
                //console.log(datas);
            },
            error: function(xhr){
                if(developermode)console.log(xhr);
            }
        })

}

вот здесь моя проблема: функция lockscreen();

success:success,
success2:success2,
exists:exists,
ex:ex

при запуске функции lockscreen(); выполняются все 4 функции а потом как было задуманно то что нужно...


Ответы (0 шт):