다른 내가 다가 내 코드가 잘 있는지 알고 싶습니다, 내가하고 싶은에 : 그것을 만드는 존재하고 할당 할 경우 객체가 모범 사례 -
- 확인하는 경우 이 속성
- 이미 단지 특성
을 할당 제가 지금 가지고있는 것은 다음과 코드,하지만 내가 쓰고 싶은 존재하지 않는 경우 두 번 같은 줄
에게function doSomething(_whatever){
if(typeof someobject === "undefined"){
someobject = { //dont exist
profile : "some value",
status : []
}
someobject.status.push(_whatever);
}else{
someobject.status.push(_whatever); //because already exist
}
}
이 스 니펫을 작성하는 더 좋은 방법은 무엇입니까? 또는 더 좋고 덜 반복적으로 그것을합니까? 사전에
감사
------ 본래의 기능
function addPerson(_person){
var people = Iee.dashboard.analytics.data.people.data;
if(typeof people[_person.Id_Emp] === "undefined"){
people[_person.Id_Emp] = {
profile : _person,
status : []
}
people[_person.Id_Emp].status.push({Id_Emp : _person.Id_Emp, status : _person.Estatus1, estatusby : _person.Centro_de_trabajo});
}else{
people[_person.Id_Emp].status.push({Id_Emp : _person.Id_Emp, status : _person.Estatus1, estatusby : _person.Centro_de_trabajo});
}
addBlackList(_person);
}
(당신의 문제를 해결하지만, 단지 제안하지 않기 위하여) - (_whatever) 귀하의'else' 제거하고'someobject.status.push를 넣어 ;''if '다음에. 무엇이든지 상관없이 실행되어야합니다. 왜 그 줄을 복제해야합니까? – Ian
개체가 이미 있는지 여부를 알 수 없습니다. 따라서 코드가 해당 행을 실행하고 객체가 존재하지 않으면 객체가 정의되지 않았기 때문에 브라우저가 다운됩니다 ... – ncubica
첫 번째 및 두 번째 코드 단편은 상당히 다릅니다. 처음에는 _object_의 존재를 확인하고, 두 번째 경우에는 객체 ('people')가 특정 _property_를 가지고 있는지 확인합니다. Javascript에는 특별히이 작업을 위해 [전용 연산자] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/in)가 있습니다. – georg