jQuery.extend() > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

jQuery.extend() 정보

jQuery jQuery.extend()

본문

jQuery.extend()

 

설명 : 두 개 이상의 객체의 내용을 함께 첫 번째 객체로 병합합니다.

두 개 이상의 개체 인수가 제공되면 $.extend()모든 개체의 속성이 대상 개체에 추가됩니다. 인수 가 무시 null되거나 undefined무시됩니다.

인수가 하나만 제공된 경우 $.extend()이는 대상 인수가 생략되었음을 의미합니다. 이 경우 jQuery 객체 자체가 대상으로 간주됩니다. 이렇게하면 jQuery 네임 스페이스에 새로운 함수를 추가 할 수있다. 이것은 JQuery에 새로운 메소드를 추가하고자하는 플러그인 작성자에게 유용 할 수 있습니다.

대상 객체 (첫 번째 인수)가 수정되고 또한 반환됩니다 $.extend(). 그러나 원본 객체를 모두 유지하려면 빈 객체를 대상으로 전달하면됩니다.


var object = $.extend({}, object1, object2);

수행되는 병합 $.extend()은 기본적으로 재귀 적으로 수행 되지 않습니다. 첫 번째 객체의 속성 자체가 객체 또는 배열 인 경우 두 번째 또는 후속 객체에서 동일한 키가있는 속성으로 완전히 덮어 씁니다. 값은 병합되지 않습니다. 이것은 바나나의 가치를 검토하여 아래 예에서 볼 수 있습니다. 그러나 true첫 번째 함수 인수를 전달하면 개체가 재귀 적으로 병합됩니다.

경고 : false첫 번째 인수에 대한 전달 은 지원되지 않습니다.

정의되지 않은 속성은 복사되지 않습니다. 그러나 객체의 프로토 타입에서 상속 된 속성 은 복사됩니다. new MyCustomObject(args)Date 또는 RegExp와 같은 내장 JavaScript 유형을 통해 생성 된 객체 인 속성은 다시 생성되지 않고 결과 객체 나 배열에 일반 객체로 나타납니다.

의 deep객체와 배열이 확장되어, 확장,하지만 같은 문자열, 부울 및 번호 등의 기본 유형 개체 래퍼가 없습니다. 주기적인 데이터 구조를 확장하면 오류가 발생합니다.

이 동작을 벗어나는 요구에 대해서는 대신 사용자 정의 확장 메서드를 작성하거나 lodash 와 같은 라이브러리를 사용하십시오 .

예 :
두 객체를 병합하여 첫 번째 객체를 수정합니다.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.extend demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div id="log"></div>
 
<script>
var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};
 
// Merge object2 into object1
$.extend( object1, object2 );
 
// Assuming JSON.stringify - not available in IE<8
$( "#log" ).append( JSON.stringify( object1 ) );
</script>
 
</body>
</html>

추천
0

댓글 0개

전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT