program tip

Javascript 객체 값을 동적으로 설정하는 방법은 무엇입니까?

radiobox 2020. 9. 3. 08:12
반응형

Javascript 객체 값을 동적으로 설정하는 방법은 무엇입니까?


사례를 말로 설명하기는 어렵습니다. 예를 들어 보겠습니다.

var myObj = {
    'name': 'Umut',
    'age' : 34
};

var prop = 'name';
var value = 'Onur';

myObj[name] = value; // This does not work

eval('myObj.' + name) = value;   //Bad coding ;)

JavaScript 객체에서 변수 값으로 변수 속성을 어떻게 설정할 수 있습니까?


myObj[prop] = value;

작동합니다. 변수의 이름과 값을 섞었습니다. 그러나 속성을 얻기 위해 문자열로 객체를 인덱싱하는 것은 JavaScript에서 잘 작동합니다.


myObj.name=value

또는

myObj['name']=value     (Quotes are required)

둘 다 서로 바꿔 사용할 수 있습니다.

편집 :myObj[prop] = value myObj [name] = value 대신 을 의미한다고 생각합니다 . 두 번째 구문이 잘 작동합니다 : http://jsfiddle.net/waitinforatrain/dNjvb/1/


설정 한 것과 동일한 방식으로 속성을 얻을 수 있습니다.

foo = {
 bar: "value"
}

값을 설정합니다. foo["bar"] = "baz";

가치를 얻으려면 foo["bar"]

"baz"를 반환합니다.


값 객체 (vo)와 유사한 것을 만들 수도 있습니다.

SomeModelClassNameVO.js;

function SomeModelClassNameVO(name,id) {
    this.name = name;
    this.id = id;
}

당신이 할 수있는 것보다;

   var someModelClassNameVO = new someModelClassNameVO('name',1);
   console.log(someModelClassNameVO.name);

myObj가지고있는대로 객체를 만들 때 더 사전과 비슷하다고 생각하십시오. 이 경우 두 개의 키 name, 및 age.

다음 두 가지 방법으로 이러한 사전에 액세스 할 수 있습니다.

  • 배열 (예 :) myObj[name]; 또는
  • 속성 (예 :) myObj.name; 일부 속성은 예약되어 있으므로 첫 번째 방법이 선호됩니다.

아무 문제없이 속성으로 액세스 할 수 있어야합니다. 그러나 배열로 액세스하려면 키를 문자열처럼 처리해야합니다.

myObj["name"]

그렇지 않으면 자바 스크립트가 name변수 라고 가정하고 라는 변수를 만들지 name않았기 때문에 원하는 키에 액세스 할 수 없습니다.


이렇게 간단하다 myObj.name = value;

참고 URL : https://stackoverflow.com/questions/6439915/how-to-set-a-javascript-object-values-dynamically

반응형