javascript中函数参数的复杂使用

Complex use of function parameter in javascript

function me(a, b) {
    function he(c, d) {
       if(!a[c]) { 
    } 
  }
}  

请有人为我解释一下 'if(!a[c])'。 为什么在 [c] 中使用这个方括号,尽管它是一个参数。它显然不是一个数组。 if(!a[c]) 有什么意义?两个参数怎么这么用?

该代码没有什么特别之处。

英文是说如果a的属性c为假,则条件为true.

在JavaScript中,括号表示法可用于访问对象的属性或数组的成员。

例如,someArray[5] 将访问数组的第 6 个成员,而 someObject['someProp'] 将访问对象 someObject.

someProp

参数 a 可能是一个对象。语法:

if (!a[c])

检查 a 对象上的变量 c 中的 属性 是否没有真值。这可能是 nullfalseundefined 或任何其他虚假值。


方括号符号可用于 属性 个名称。所以,如果你有这样的对象:

var x = { name: "John"};

然后,您可以通过以下任何一种方式访问​​ 属性:

x.name
x["name"];

// Or, if the property name is in a variable
var prop = "name";
x[prop]

当 属性 名称在另一个 Javascript 变量中时,您的示例使用的是上述三个选项中的最后一个版本。

在 javascript 中,可以使用方括号语法动态访问属性。

考虑以下因素:

var person = {name:'Sarah'};
console.log(person.name); // logs 'Sarah';

有时,您可能想要动态访问一个对象的属性,使用一个包含您要访问的 属性 名称的变量。上面的例子也可以这样写:

var person = {name:'Sarah'};
var prop = 'name';
console.log(person[prop]); // logs 'Sarah';