javascript - What is the meaning of [] in JS function?

WBOY
Release: 2016-08-25 10:37:18
Original
1355 people have browsed it

<code>function returnfunc (propertyName) {
  return function (obj) {             //-----这行定义并返回了一个闭包,也被称之为一个匿名函数
    return obj[propertyName];         //这里用方括号法访问属性,因为属性是变量(returnfunc()函数的参数)
  };
}

var savefunc = returnfunc("name");     //调用returnfunc()
var result = savefunc({name:"Picasso"});//调用savefunc()
alert(result);                        //返回字符串“Picasso”
</code>
Copy after login
Copy after login

Excuse me, name:"Picasso" in savefunc({name:"Picasso"})

Reply content:

<code>function returnfunc (propertyName) {
  return function (obj) {             //-----这行定义并返回了一个闭包,也被称之为一个匿名函数
    return obj[propertyName];         //这里用方括号法访问属性,因为属性是变量(returnfunc()函数的参数)
  };
}

var savefunc = returnfunc("name");     //调用returnfunc()
var result = savefunc({name:"Picasso"});//调用savefunc()
alert(result);                        //返回字符串“Picasso”
</code>
Copy after login
Copy after login

Excuse me, name:"Picasso" in savefunc({name:"Picasso"})

The ones with dots and [] are both ways of expressing the properties of objects, but the latter contains strings. Note that they are strings.
First, after execution, a variable is generated var propertyName = "name";
Then:

<code>var savrfunc = function(obj){
    return obj[propertyName];
}
</code>
Copy after login

Then the above function is executed and the return value is returned to result;
The execution effect inside is equivalent to:

<code>var obj = {name:"Picasso"};
return obj[propertyName]//上面 已经有这个变了 值是name ;所以就是返回了 obj.name ,相当于把 Picasso给返回出去了。
</code>
Copy after login

has the same effect as .but different usage

<code>var text ='prop';
var obj = {
  prop:123
};
obj.prop//123
obj.text//undefined
obj[text]//123</code>
Copy after login

propertyName is the property name, person[propertyName] is person['name']

return obj[propertyName]; //Use square brackets to access properties here, because properties are variables (please enter code parameters for the returnfunc() function)

It’s all stated in your comments.
There are two ways to access the properties of an object:

  1. obj.attr format, easy to write

  2. obj[attr] form, the attribute name can be in the form of a variable

. and [] can both access objects

javascript - What is the meaning of [] in JS function?
javascript - What is the meaning of [] in JS function?

Source: "JavaScript Standard Reference Tutorial (alpha)", by Ruan Yifeng

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!