2016-10-31 20 views
-2

他の人のコードに取り組んでいますが、このオブジェクトの仕組みがわかりません。パラメータ付きのこのjavascriptオブジェクトはどのように機能しますか?

obj[fnName](param, param1) 

私はobj [fnName]を理解していますが、どのようにオブジェクトに値を渡すことができますか?

フルステートメントはvar res = obj[fnName](param, param1)です。 PARAMまたはPARAM1がnullの場合

PARAMとPARAM1は、関数はファーストクラスのオブジェクトであり、その文はJavaScriptで

+2

OBJ [FNNAME] '関数は'の値... – deceze

+1

:インスタンスのオブジェクトだった場合、:

obj = { myFunction: function (param1, param2) { //do some stuff } } 

その後obj[myfunction]('hello', 'world')を行うことは、このような何かをすることの相当します – maioman

+3

'obj [fnName]'はオブジェクトからプロパティ値を取得し、コードではそのプロパティ値が関数であると想定されています。その後のカッコ内の値は、その関数への関数呼び出しの引数リストです。 – Pointy

答えて

1

nullのオブジェクトまたは文字列

することができます。他の値と同じように扱うことができます。それらを渡すことができ、他のオブジェクトのプロパティを含む場所を割り当てることができます。

var obj = {}; 
obj.foo = 1; // A number 
obj.bar = "bar"; // A string 
obj.baz = function baz (arg1, arg2) { console.log(arg2, arg1); }; // A function 
obj.baz(obj.foo, obj.bar); 
1

obj [fnName]はオブジェクトの一部の関数を参照しているので、その関数を取得してすぐに2つのパラメータで呼び出すことができます。おそらくそれは

var theFunction = obj[myFunction]; // storing the function in a method 
theFunction('hello', 'world'); // calling the function 
関連する問題