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개