<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>
실례합니다. 이름:"Picasso"
in savefunc({name:"Picasso"})<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>
실례합니다. 이름:"Picasso"
in savefunc({name:"Picasso"})
점과 []는 모두 객체의 속성을 표현하는 방식이지만, 후자는 문자열이라는 점에 유의하세요.
먼저 실행 후 변수가 생성됩니다. var propertyName = "name";
그런 다음
<code>var savrfunc = function(obj){ return obj[propertyName]; } </code>
그런 다음 위 함수가 실행되고 반환 값이 결과로 반환됩니다.
내부의 실행 효과는
<code>var obj = {name:"Picasso"}; return obj[propertyName]//上面 已经有这个变了 值是name ;所以就是返回了 obj.name ,相当于把 Picasso给返回出去了。 </code>
.과 기능은 같지만 사용법이 다릅니다
<code>var text ='prop'; var obj = { prop:123 }; obj.prop//123 obj.text//undefined obj[text]//123</code>
propertyName은 속성 이름이고, person[propertyName]은 person['name']입니다.
return obj[propertyName]; //这里用方括号法访问属性,因为属性是变量(returnfunc()函数的请输入代码参数)
댓글에 다 나와있습니다.
객체의 속성에 액세스하는 방법에는 두 가지가 있습니다.
obj.attr 형식, 작성하기 쉬움
obj[attr], 속성 이름은 변수 형식일 수 있습니다
과 []는 모두
객체에 액세스할 수 있습니다.
출처: "JavaScript 표준 참조 튜토리얼(알파)", 작성자: Ruan Yifeng