그것은 소리가 나지 않는다
나는 성공없이이 같은 시도 모두, 그냥 물건.
// Create an object that we'll keep person objects in
var personData = {};
// Add a person object to it for person ID #123
personData[123] = {};
// Set person #123's favorite movie:
personData[123].favMovie = "Avatar";
// Add a different person; this time, we'll add the movie at
// the same time
personData[234] = {
favMovie: "Matrix"
};
같은지도와 같은 개체를 사용하여, 때로는 사람들이 상속 된 속성 (같은 toString
및 valueOf
및 constructor
)를 갖는 그들을 피하기 위해 Object.create(null)
를 사용하여 객체 생성 : 일명 (ES2015에서
person[123] = Object.create(null);
person[123].favMovie = "Avatar";
을 " ES6 "), 사람들의지도 대신에 Map
을 사용할 수도 있습니다.
var personData = new Map();
... 다음 개별 개체 개체에 set
및 get
을 사용하십시오.
function Person() {
// ...
}
Person.prototype.doSomething = function() {
// ...
};
... 또는 ES2015 구문 :
class Person {
constructor() {
// ...
}
doSomething() {
// ...
}
}
각 사람의 오브젝트가 복잡하면
, 당신은 ES5 구문을 사용하여, 생성자 함수 그들을 위해 관련 프로토 타입을 사용할 수 있습니다 그리고 그들을 만드는 :
personData[123] = new Person();
// or if using Map
personData.set(123, new Person());
참고 : 숫자로 쓰더라도 객체의 키 (속성 이름)는 항상 문자열입니다 (ES2015 Symbol
을 사용하지 않는 한 여기에 표시되지 않음). 반대로 ES2015 Map
의 키는 무엇이든 될 수 있습니다. Map
인스턴스의 키 동등성은 "same value zero" 알고리즘 (기본적으로 ===
이며 NaN
은 [===
]에 해당하지 않음)을 사용하여 결정됩니다.