2013-07-18 3 views
5

속성을 개체에 할당하고 정의하는 것의 차이점은 무엇입니까?속성 정의와 할당의 차이점

Object.defineProperty(obj,p,propDesc) 

또는 단순히

obj.p="someValue"; 
+0

A * propertyDesciptor *는'something' * 값 *이 아닙니까? – Bergi

+0

[정의 대 할당] 가능한 복제본 (http://stackoverflow.com/questions/15989483/definition-versus-assignment) – givanse

답변

2

Object.defineProperty는 해당 속성에 대한 옵션의 전체 무리를 설정할 수 있습니다. enumerablewritable과 같습니다.

obj.p = 'something';을 수행하면 "기본"옵션을 사용하여 속성을 설정하게됩니다.

'더 나은'것도 아니고 각각 고유 한 용도가 있습니다. 어느 것을 사용하는지는 요구 사항에 따라 다릅니다.

+0

속성 할당은 객체에 새 속성을 추가하는 데 자주 사용됩니다. 내 게시물에 문제가 발생할 수 있다고 설명했다. 따라서 간단한 규칙을 따르는 것이 가장 좋습니다. 새 속성을 만들려면 정의를 사용하십시오. 속성 값을 변경하려면 할당을 사용하십시오. –

+1

@Maizere : 아니요. 이러한 문제로 인해 정상적인 코드에는 문제가 발생하지 않으며 모든 곳에서 과제를 사용해야합니다. – Bergi

0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty에서 발견 " 이 방법은 객체의 속성을 수정하거나하는 정밀한 부가 할 수있다. 할당을 통해 일반 속성 첨가 속성 루프 용 열거 (또는 동안 표시 특성을 만들어 Object.keys 메서드)에서 값을 변경하고 삭제할 수 있습니다.이 메서드는 이러한 추가 세부 정보를 기본값에서 변경할 수 있습니다. "