Передать объект в функцию JavaScript - PullRequest
35 голосов
/ 14 октября 2011

Недавно я возился с jQuery на моем веб-сайте, и у меня довольно ограниченные знания Javascript.Мне начинает нравиться способность jQuery передавать переменные в функцию jQuery внутри фигурных скобок, вот так:

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

Мне было интересно, как я могу написать функцию Javascript, в которую я могу передавать элементывнутри фигурных скобок?Я знаю, что вы можете написать такие функции:

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

}

, но это не поддерживает скобки?Я также знаю, что вы не можете добавлять аргументы и делать это:

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");

, но я также хочу передавать внешние переменные вместо целой строки строк, если это имеет смысл?

По сути, я хочу функцию, в которую я могу передавать переменные, например:

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

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

Ответы [ 2 ]

81 голосов
/ 14 октября 2011

"Скобки" делают объект буквальным , то есть они создают объект. Это один аргумент.

Пример:

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

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

объект также может быть создан заранее:

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

someFunc(someObject);

Рекомендую прочитать Руководство по MDN JavaScript - Работа с объектами .

2 голосов
/ 14 октября 2011
function myFunction(arg) {
    alert(arg.var1 + ' ' + arg.var2 + ' ' + arg.var3);
}

myFunction ({ var1: "Option 1", var2: "Option 2", var3: "Option 3" });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...