Maison  >  Questions et réponses  >  le corps du texte

javascript - Quelle est la différence entre ces deux façons d'écrire du JS

function cs() {
    var _cs = {};    
    _cs .open_change_customer_p = function (url, url_param) {
        console.log(url);
        console.log(url_param);
        //do something
        ...
        ...
        block_enter_presss();
    };
    
    function block_enter_presss() {
        /**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */
    }
    return _cs ;
}
function cs() {
    cs .open_change_customer_p = function (url, url_param) {
        console.log(url);
        console.log(url_param);
        //do something
        ...
        ...
        block_enter_presss();
    };
    
    function block_enter_presss() {
        /**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */
    }
    return cs ;
}

Contenu supplémentaire :
J'utilise
var a=new cs();
a.open_change_customer_p ();
sur la page Web.
Ensuite, cs n'expose que la fonction open_change_customer_p
Dans les deux manières d'écrire ci-dessus, est-il préférable de suspendre la méthode pour qu'elle soit exposée dans une nouvelle variable, ou de la suspendre directement sous le nom de la fonction ?

扔个三星炸死你扔个三星炸死你2663 Il y a quelques jours950

répondre à tous(6)je répondrai

  • 巴扎黑

    巴扎黑2017-07-05 10:56:15

    Je vois le premier plus souvent, mais qu'est-ce que c'est que le second ? .

    répondre
    0
  • 漂亮男人

    漂亮男人2017-07-05 10:56:15

    Le deuxième est-il comme ça
    _cs.open_change_customer_p = function (url, url_param){......}

    La différence entre les deux est que la deuxième méthode peut être supprimée et que la première méthode définie avec var ne peut pas être supprimée. À part cela, il ne semble y avoir aucune différence. Selon les habitudes personnelles, la lisibilité de la première méthode peut être différente. Ce sera mieux

    répondre
    0
  • ringa_lee

    ringa_lee2017-07-05 10:56:15

    Pourquoi ne pas extraire la méthode statique et écrire une fonction distincte, mais en créer une nouvelle à chaque fois ?

    répondre
    0
  • 阿神

    阿神2017-07-05 10:56:15

    ...La première utilisation :
    var cs1 = cs();
    var cs2 = cs();
    cs1 et cs2 sont deux objets différents, pointant vers des espaces mémoire différents
    Et le second pointera vers le même espace est la fonction cs elle-même...
    Le problème qui se pose est que si vous déclarez deux variables, si vous modifiez l'une d'entre elles, la valeur de l'autre changera en conséquence (usage var cs1 = cs())

    Si vous voulez var cs1 = new cs(), le deuxième type contrôle toujours la fonction cs elle-même... Le cs là-bas devrait être remplacé par ceci

    Le premier est bon... parce que le second est bizarre...

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-05 10:56:15

    Les fonctions devraient toutes pouvoir réaliser la même fonction

    1. Le premier a l'air plus confortable

    2. Le deuxième a l'air plus confortable

    Si vous vous sentez mal à l'aise avec la première définition, vous pouvez la définir comme ceci

    function cs() {  
        this.open_change_customer_p = function (url, url_param) {
            console.log(url);
            console.log(url_param);
            block_enter_presss();
        };
        
        function block_enter_presss() {
            /**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */
        }
    }
    console.log(new cs())

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-07-05 10:56:15

    Votre deuxième méthode peut être réalisée

    var a=new cs();
    cs.open_change_customer_p ();

    Un tel appel ? J'en doute

    répondre
    0
  • Annulerrépondre