참조로 Array.prototype.fill()에 객체 전달
fill() 메서드를 사용하여 고정 길이의 배열을 초기화하는 경우 , 개체를 값으로 할당하면 새 인스턴스를 만드는 대신 동일한 개체를 참조하는 모든 배열 요소가 생성됩니다. 이로 인해 배열 요소를 수정할 때 의도하지 않은 동작이 발생할 수 있습니다.
예:
var arr = new Array(2).fill({}); console.log(arr[0] === arr[1]); // true arr[0].test = 'string'; console.log(arr[1].test); // 'string'
참조 전달 방지:
각 요소가 고유한 인스턴스인 객체 배열을 만들려면 객체에 직접 fill()을 사용하지 마세요. 대신 다음 대체 접근 방식을 따르세요.
맵 함수:
배열을 자리 표시자 값(예: 정의되지 않음)으로 채우고 map()을 사용하여 각 요소를 새 개체:
var arr = new Array(2).fill().map(u => ({}));
Object Factory 함수:
새 객체를 반환하는 함수를 사용하여 배열을 채웁니다.
var arr = new Array(2).fill().map(Object);
이러한 기술을 사용하면 배열의 각 요소가 개별 요소인지 확인할 수 있습니다. 의도하지 않은 참조 전달을 방지하고 객체 격리를 유지합니다.
위 내용은 객체와 함께 Array.prototype.fill()을 사용할 때 참조 전달을 피하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!