web-dev-qa-db-fra.com

Passer l'objet à la fonction javascript

JQuery a récemment joué sur mon site Web et ma connaissance de Javascript est assez limitée. Je commence à aimer la capacité de jQuery à transmettre des variables à une fonction jQuery à l’intérieur des accolades, comme ceci:

$(somediv).animate({thisisone: 1, thisistwo: 2}, thisisavar);

Ce que je me demandais, c'est comment je peux écrire une fonction Javascript pour que je puisse passer des éléments à l'intérieur des accolades? Je sais que vous pouvez écrire des fonctions comme celle-ci:

function someName(var1, var2, var3...) {

}

mais cela ne supporte pas les accolades? Je sais aussi que vous ne pouvez ajouter aucun argument et procédez comme suit:

function accident() {
    for( var i = 0; i < arguments.length; i++ ) {
        alert("This accident was caused by " + arguments[i]);
    }
}
accident("me","a car","alcohol","a tree that had no right to be in the path of my driving");

mais je veux aussi passer des variables extérieures au lieu d'une ligne entière de chaînes, si cela a du sens?

En gros, je veux une fonction à laquelle je puisse transmettre des variables, comme ceci:

function myFunction(neededcodehere){
    //Some code here...
}

myFunction (var1, {"Option 1", "Option 2", "Option 3"}, anothervar);
37
Connor Deckers

Les "accolades" forment un objet littéral , c’est-à-dire qu’elles créent un objet. C'est un argument.

Exemple:

function someFunc(arg) {
    alert(arg.foo);
    alert(arg.bar);
}

someFunc({foo: "This", bar: "works!"});

l'objet peut également être créé à l'avance:

var someObject = {
    foo: "This", 
    bar: "works!"
};

someFunc(someObject);

Je recommande de lire le Guide JavaScript MDN - Travailler avec des objets .

83
Felix Kling
function myFunction(arg) {
    alert(arg.var1 + ' ' + arg.var2 + ' ' + arg.var3);
}

myFunction ({ var1: "Option 1", var2: "Option 2", var3: "Option 3" });
2
Darin Dimitrov