我正在处理别人的代码而我不明白这个对象是如何工作的?
obj[fnName](param, param1)
我理解obj [fnName],但该对象如何传递值?
完整的陈述是var res = obj[fnName](param, param1)
;
param和param1可以是对象或字符串
如果param或param1为null,则语句为null
答案 0 :(得分:1)
在JavaScript中,函数是第一类对象。您可以像对待任何其他值一样对待它们。你可以传递它们,你可以为它们分配位置,包括其他对象的属性。
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 :(得分:1)
obj [fnName]正在引用该对象的某个函数,因此您将获得该函数并立即使用两个参数调用它。例如,如果对象是:
obj = {
myFunction: function (param1, param2) {
//do some stuff
}
}
然后做obj[myfunction]('hello', 'world')
就等同于做这样的事情:
var theFunction = obj[myFunction]; // storing the function in a method
theFunction('hello', 'world'); // calling the function