这个带参数的javascript对象如何工作?

时间:2016-10-31 13:22:43

标签: javascript

我正在处理别人的代码而我不明白这个对象是如何工作的?

obj[fnName](param, param1)

我理解obj [fnName],但该对象如何传递值?

完整的陈述是var res = obj[fnName](param, param1);

param和param1可以是对象或字符串

如果param或param1为null,则语句为null

2 个答案:

答案 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