Il est possible de déclarer 2 autres fonctions dans la fonction principale comme celle-ci?

var jquery4u = {
    init: function() {
        jquery4u.countdown.show();
    },
    countdown: function() {
        show: function() {
            console.log('show');
        },
        hide: function() {
            console.log('hide');
        }
    }
}
jquery4u.init();

Et je reçois l'erreur suivante: Uncaught SyntaxError: jeton inattendu (sur cette ligne "show: function () {"

1
Madalin Alexandru 17 juil. 2015 à 02:24

2 réponses

Meilleure réponse

Supprimez le function à droite de la countdown (démo)

var jquery4u = {
    init: function() {
        jquery4u.countdown.show();
    },
    countdown: {
        show: function() {
            console.log('show');
        },
        hide: function() {
            console.log('hide');
        }
    }
}
jquery4u.init();

La prochaine fois, utilisez jsFiddle pour faire une démo et cliquez sur le bouton "JSHint".

2
Mottie 16 juil. 2015 à 23:33

En fait, rien de tout cela ne fonctionnera. Sauf si vous faites un compte à rebours sur un objet ou si vous traitez ses sous-fonctions comme des fonctions appropriées. Pourquoi: Sous compte à rebours, vous avez créé une instance d'objet et non une fonction.

var jquery4u = {
    countdown: function() {
        show = function() {
            console.log('show');
        }
        hide = function() {
            console.log('hide');
        }

        jquery4u.countdown.show();
    }
}

Le code ci-dessus est un code valide donc c'est possible. Malheureusement, il ne retournera rien.

La bonne façon de faire est dans ce format:

var jquery4u = {
    countdown: {
        show: function() {
            console.log('show');
        },
        hide: function() {
            console.log('hide');
        }
    }
}

Cela fonctionnera. Vous pouvez l'essayer en appelant:

jquery4u.countdown.show();
1
Richard McFriend Oluwamuyiwa 16 juil. 2015 à 23:46