2016-07-22 2 views
0

이제 Typescript를 배우고 문서의 일부 섹션을 이해하는 데 약간의 문제가 있습니다. 설정이 '종의 애완 동물 [ "종"] = "포유 동물"같은 키를 사용하여 설정할 수 있습니다 왜 이해가 안 typescript.lang 핸드북Typescript/ECMAScript 특성으로 설정

let pets = new Set(["Cat", "Dog", "Hamster"]); 
pets["species"] = "mammals"; 

for (let pet in pets) { 
    console.log(pet); // "species" 
} 

for (let pet of pets) { 
    console.log(pet); // "Cat", "Dog", "Hamster" 
} 

에 코드를 참조하십시오. 기본적으로 set은 키 - 값 특성이 아닙니다. 대한

이유는 (애완 동물의 애완 동물을 보자) "고양이"입니다, "개", "햄스터"NO "포유 동물"

설명 도와주세요. 많은 감사

+0

집합에 값을 추가하는 방법이 아닙니다. 값을 추가하는'.add' 메서드가 있습니다. – loganfsmyth

답변

1

집합은 반복 가능한 객체입니다. 초기 배열 집합은 for..of를 통해 액세스 할 수있는 반복 가능한 값입니다. pets["species"]= "mamals"라고 말하면 "mamals"값을 가진 "species"속성을 만들고 있지만 iterable 값의 일부가 아니므로 for..in을 사용할 때 볼 수 있습니다.

for..of는 반복 가능한 값을 표시하고 for..in은 개체의 속성을 표시합니다. 이 도움이 되었기를 바랍니다.

+0

내가 애완 동물 = 새로운 세트 ([ "Cat", "Dog", "Hamster"])라고 말하면; 그 애완 동물이 Set으로 유추 된 타입을 가지고 있다는 것을 의미합니까, 아니면 여전히 어떤 객체일까요? 당신이 재산 "종"을 말할 때, 당신은 세트의 물건이 아니라는 것을 의미합니까? 맞습니까? 당신의 위대한 답변에 많은 감사드립니다. 그리고 왜 for..in은 단지 "포유 동물"인지, 왜 0, 1, 2 인 고양이, 개, 햄스터의 색인이 아닌지요. 내 참조는 https://www.typescriptlang.org/docs/handbook/iterators-and에서 왔습니다. -generators.html – Gibi

+1

JS exept 리터럴의 모든 객체도 함수이며, 집합도 객체입니다. Set에는 관리 할 수있는 열거 할 수없는 속성 집합이 있습니다. for..in은 속성 이름이므로 열거 할 수 있으므로 "종"에만 액세스하므로 for..in으로 나열됩니다. –

관련 문제