web-dev-qa-db-ja.com

オブジェクトをjavascript関数に渡す

最近、私のWebサイトで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);
37
Connor Deckers

「中括弧」は、オブジェクトリテラルを作成しています。つまり、オブジェクトを作成します。これは1つの引数です。

例:

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

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

オブジェクトは事前に作成することもできます。

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

someFunc(someObject);

MDN JavaScriptガイド - オブジェクトの操作 を読むことをお勧めします。

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