2017-11-25 11 views
2

으로 구축 대상 : stuff 객체입니다자바 스크립트 : 나는 다음과 같은 몇 가지 코드를 보았다 개체 매개 변수

var thing=Object(stuff); // stuff is an object 

.

(이 코드는 Mozilla의 웹 사이트 Object.assign의 polyfill에서 보았습니다.)

모질라에 관한 문서는 매개 변수가 객체라는 것을 의미하지 않습니다.

내가 알 수있는 한, 새로운 개체는 원래 개체에 대한 참조입니다.

var thing=stuff; // stuff is an object 

둘 사이의 차이점은 무엇입니까?

편집

는 내가 말을해야합니까? 이것은 이 아니며에 대한 질문입니다. Object.assign입니다. 그것은 Object 생성자 사용에 관한 질문입니다.

+0

'stuff'가 객체 인 경우 사실상 차이가 없습니다. 핵심은 '물건'이 항상 물건이 아니라는 것입니다. – Bergi

답변

-1

Object.assign의 polyfill을 사용하면 한 번에 여러 개체를 병합 할 수 있습니다. 새 Object를 만들 때 귀하의 요점은 동일하지만 사용 사례가 다릅니다.

우리가 3 개체가 고려하고 우리는 그들을 병합 할 (문자와 객체 사이의

const a = { 'key1': 'value1' }; 
const b = { 'key2': 'value2', 'key3': 'this will get replaced' }; 
const c = { 'key3': 'value3' }; 

// Using Object.assign 
const abc = Object.assign(a, b, c); 
// abc will have the value {key1: "value1", key2: "value2", key3: "value3"} 
+0

es5를 사용하고 있다면 const에 대한 구문 오류가 발생합니다. es5의 경우 var를 var로 변경하십시오. 합성 오류가 없습니다. –

+0

지금 사용해보세요. 쉼표에 대해 죄송합니다. –

+1

@BrijeshBhakta 나는 그 문제를 해결한다고 생각하지 않는다. 나는'객체.assign'은 다음과 같이합니다. 나는 polyfill이 코드를 본 곳이라고 언급했습니다. 질문은 :'Object' 생성자를 객체 매개 변수와 함께 사용하는 목적은 무엇입니까? BTW, 나는 당신의 객체'a'가 상수라면 몇 가지 문제가있을 것이라고 생각합니다; 'Object.assign'는 대상 객체를 변경해야합니다. – Manngo

0

차이) -

개체 생성자는 지정된 값의 오브젝트 래퍼를 만듭니다. 값이 null이거나 정의되지 않으면 비어있는 개체를 만들어 반환합니다. 그렇지 않으면 에 해당하는 Type의 개체를 지정된 값으로 반환합니다. 값이 이미 객체이면 값 을 반환합니다.

생성자가 아닌 컨텍스트에서 호출되면 Object는 새 Object()에 대해 과 동일하게 동작합니다. - 당신이 객체를 사용하는 경우 from MDN

, 당신은 어떤 값을 삽입하고 새로운 개체를 얻을 수 있지만, 객체의 인수로 객체를 사용하는 경우 - 당신은이 개체에 링크를 얻을 수 있습니다. stuff 오브젝트, 및 var thing=Object(stuff);var thing=stuff;이 예는 STUF 번호 다른 경우, 등가 인 경우

var thing=Object(stuff);가 --- 개체;

var thing=stuff; --- 숫자;