var introduce = function(greeting) { alert(greeting + ", my name is " + this.name + " ,home no is " + arguments[1]); } hiBob(" 456"); // alerts "Hi, my name is Bob" yoJoe(" 876");
5 Réponses :
Pour répondre à votre question, c'est ce que Slice
Array.slice (commencez [ fin]) le tranche la méthode crée un nouveau tableau d'un section sélectionnée d'un tableau. Les tableau d'origine n'est pas affecté par cette Mais si une chaîne ou un numéro dans un Le tableau est altéré, il n'est pas reflété dans l'autre, alors qu'un changement à un L'objet référencé peut être vu dans les deux Array Objets. La méthode des tranches utilise l'index de la matrice zéro à déterminer la section sur laquelle à Créez le nouveau tableau. Il extrait à, mais non compris, la "fin" élément (si aucune «fin» n'est spécifiée, le La valeur par défaut est le dernier élément). Les Le code suivant crée un tableau appelé 'arbres' puis affiche une "tranche" de IT: CODE: P>
trees = ["oak", "ash", "beech", "maple", "sycamore"] document.write(trees.slice(1,-2))
Cela ne répond pas vraiment à sa question. Je pense qu'elle voulait savoir ce qu'il a fait dans le contexte donné.
Ah, la prochaine fois que je vais déduire ce qu'elle veut vraiment savoir :)
Je pense que c'est injuste de descendre-mod cette réponse. Je vais moi-même indiquer que la tranche peut être utilisée pour copier un tableau au lieu de passer autour d'une référence.
Ma faute mais la supposition de CDMCKay était juste. Je voulais savoir ce que le code ci-dessus a fait dans le contexte. J'ai bien compris ce qu'Apay.Prototype.slice.Call (Arguments) depuis le prochain appel à A arg.shift () :-) Susan
array.pototype.slice.call (arguments) code> crée un tableau code> contenant tous les arguments transmis à la fonction. P>
Il allume l'objet code> argument code> dans un objet code> objet code> afin qu'il puisse appeler L'objet Arguments est un objet de type tableau contenant 0 ou plusieurs propriétés d'index numérique et une longueur arg.shift () code>. p>.
code> propriété p>
Il n'y a pas de argument code> type javascript.
Arguments CODE> est un objet code> uniforme code> avec zéro ou plusieurs propriétés numériques et une propriété
longueur code> (un objet de type tableau).
the arguments objet est un objet de type tableau, il a seulement la propriété de longueur. P>
appeler la fonction de tranche via le tableau.Prototype est une technique courante pour la convertir en une matrice, vous pourrez donc utiliser des fonctions de tableau tels que shift et
Je déteste que les arguments soient un tableau à moitié cuit au four, si ennuyeux
Oui. J'ai toujours pensé que c'était boiteux aussi.
Oui, ennuyeux, c'est l'une des choses qui seront améliorées sur Ecmascript 5 ...
@CMS NOPE, Arguments CODE> Hérités toujours de
Object.Prototype code> dans ES5, pas à partir de
array.pototype code>. Vous avez également oublié plutôt utile (bien que quelque peu mal conçu)
arguments.callee code> b> :)
@KANGAX: Oui, je ne l'ai pas mentionné, ni les arguments obsolètes.caller, il est dommage que cela hérite toujours de l'objet.Prototype, je viens de voir le projet final de septembre :( (
Ce code crée une nouvelle méthode sur la fonction code> type code> nommée En outre, si plus d'un argument est fourni à Pour essayer de l'expliquer de manière plus simple, considérez quelque chose comme ceci: p> liant code> qui accepte une fonction libre en entrée et renvoie une fonction d'emballage qui l'appelle comme s'il s'agissait d'une méthode sur l'objet spécifié. Ceci est assez similaire à la manière dont un délégué .NET enveloppe une fonction et son référence associée
cette référence code>.
lidez code>, ces Des arguments supplémentaires sont ajoutés à l'appel - cette technique s'appelle également Currying . P>
Merci. Cette information m'a été utile de regarder davantage dans ce code. Susan
Votre réponse était la plus utile pour moi depuis que j'ai appris au cœur de Currying
Pas de upvotes? Devrait justifier au moins 1 ou 2