2012-07-04 2 views
4

속성 필드 변수를 사용하여 객체를 만드는 간단한 방법이 있습니까? 가변 속성 이름을 사용하여 JS 객체를 구성하는 약식 방법

내가 어떤 변수에 할당, 새로운 객체를 생성하는 것을 피하기 다음 속성을 설정하는 방법, 내가 save이 속성을 원하는, 내가이 예에서 Backbone를 사용하여, 다음 변수 PROP.Todo.PRIORITY = 'priority' 및 말해봐?

나는이 달성하고자하는

:이 같은 노력했습니다

var tmpObj = {}; 
tmpObj[PROP.Todo.PRIORITY] = "high"; 
this.model.save(tmpObj); 

, 실패이었다 :

this.model.save(({}[PROP.Todo.PRIORITY] = "high")); 

어떤 제안? 나는 오랫동안 객체 선언을 많이 쓰려고한다. 당신은 단지 하나 개의 매개 변수를 저장하는 경우

답변

2

개체를 만드는 쉬운 방법을 원한다면 도우미 함수를 사용하는 것이 어떻습니까? 내가 그렇지 않으면 임시 개체를 많이 생성 될거야

:

function obj(prop, value) { 
    var o = {}; 
    o[prop] = value; 
    return o; 
} 

this.model.save(obj(PROP.Todo.PRIORITY, "high")); 

은 내가 당신의 질문의 후반 부분을 이해 모르겠어요.

어떤 경우에도 개체를 만들어야하는데 개체 생성에 문제가있는 것은 성능 문제입니다.

+0

답변을 주셔서 감사합니다. -이 솔루션이 마음에 들지만 다른 대답은 아마도 내 선택 경로 일 것입니다. 그리고 예, 제 표현이 더 좋았을 수도 있습니다. 나는 '일시적인'이라는 뜻이 아니며, 새로운 대상에 대한 선언이 많이 필요할 것이라는 의미였습니다. 코드가 많이 부풀어 오르더라도 성능에 대한 우려는 아닙니다. –

4

, Model.save는이 (key,value,options)

http://backbonejs.org/#Model-save

model.save 저장, 수신 인수의 또 다른 방법이있다 ([속성], [옵션])
[...] set과 마찬가지로 해시 대신 개별 키와 값을 전달할 수 있습니다. [...]

this.model.save(PROP.Todo.PRIORITY, "high"); 

동시에 여러 속성을 저장하려면

, 당신은 임시 객체를 작성해야 당신이 당신의 예를 작성할 수 의미한다.

+0

+1 문서를 읽는 중입니다. :) 할 수있는 방법이 있다는 것을 깨닫지 못했습니다. – casablanca

+0

고마워요.이게 내가 갈께. 그러나 나는 사람들이 구글을 통해 여기에 도착하면 더 많은 질문의 제목에 직접 답합니다. 이해해 주시기 바랍니다! –

+0

@Ed. 문제 없음 – nikoshr

관련 문제