JavaScript

jQuery 소스코드 분석과 함께하는 자바스크립트 공부 – jQuery.extend: Objects Inherit from Objects

jQuery.extend() jQuery에서 $.extend() 메서드를 사용하여 객체를 확장할 수 있습니다.(한 객체가 다른 객체의 프로퍼티를 상속받을 수 있습니다.) 이 때 shallow copy(얕은 복사)와 deep copy(깊은 복사)의 두 가지 방법 중 하나를 사용할 수 있습니다. shallow copy를 할 경우 확장한 객체를 수정하면 원본 객체도 같이 수정됩니다. deep copy에서는 새로 확장한 객체를 수정해도 원본 객체는 영향을 받지 않습니다. 아래에서 shallow copy와 deep copy의 사용예를 보여드리겠습니다. var artist = { name: 'Serge Gainsbourg', tags: ['french', 'chanson francaise', 'chanson... »

jQuery 소스코드 분석과 함께하는 자바스크립트 공부 – 5

이 글에서는 jQuery core에 사용된 design pattern 중 하나인 factory design pattern 에 대해서 알아보겠습니다. [참고] design pattern, 디자인 패턴은 프로그램을 작성하는데 사용할 수 있는 틀이나 모형이 될 수 있는 어떤 형태를 의미합니다. 오랜기간 개발자들이 많은 프로그램을 개발하면서 겪었던 여러 경험과 시행착오들이 축적되어 만들어진 모범적인 관행이라고 할 수 있으며 어떤 문제를 해결하는데(그 문제의 해결에 적합한 코드를 작성하는데) 도움을 줍니다. 1. 객체 생성 object creation 오랜기간 널리 사용된 Gang of Four(Design Patterns: Elements of Reusable Object-Oriented Softwar... »

jQuery 소스코드 분석과 함께하는 자바스크립트 공부 – 4

이 글에서 자바스크립트의 function scope(자바스크립트의 변수의 유효범위는 함수 내부로 정해진다는 의미), jQuery chaining patter, jQuery.fn 에 대해서 알아보겠습니다. 1. function scope jQuery의 소스코드를 보면 jQuery 객체가 여러 함수에 겹겹이 쌓여 있는 것을 보실 수 있습니다. 이것은 바로 function scope를 만들기 위해서 입니다. 자바스크립트는 변수의 유효범위가 함수로 결정되기 때문에 새로운 유효범위를 만들기 위해서 - 그 범위안에서 지역변수를 자유롭게 사용하고 범위 바깥에서 그 변수에 접근하지 못하게 하기 위해 - 함수를 사용하게 되는데, jQuery 같이 많은 기능을 가진 복잡한 객체를 만들때에는 이런 저런 변수를 많이 만들... »

jQuery 소스코드 분석과 함께하는 자바스크립트 공부 – 3

이전글에서 변수(데이터)와 함수에 대해 설명했습니다. 이제 jQuery의 객체(object)에 대해서 알아보겠습니다. 오늘 알아볼 내용은 prototype입니다. 자바스크립트는 prototype-based language 입니다. 이것이 어떤 의미인지 알아보기 위해 class-based language와 비교를 할 수도 있지만 지금은 그렇게 하지 않겠습니다. 먼저 prototype이 뭔지 알아야 다른 것과 비교가 가능하기 때문입니다. 이제 prototype은 어떤 것이고 jQuery에서 그것을 어떻게 사용하고 있는지 살펴보겠습니다. 1. 모든 함수는 prototype이라는 프로퍼티를 가지고 있습니다. 그리고 prototype은 객체입니다. 우리는 이것을 core.js에서 JavaScript co... »

jQuery 소스코드 분석과 함께하는 자바스크립트 공부 – 2

이전 글에서 jQuery 소스를 통해 변수(데이터)와 함수에 대해 살펴보았습니다. 이번에는 jQuery의 객체에 대해서 알아보겠습니다. 1. 객체(object)는 단지 사람이나 의자와 같은 객체(속성을 가지고 있는 어떤 것)일 뿐입니다. 자바스크립트에서 객체란 무엇일까요? 이것은 마치 사람, 의자, 개와 같이 어떠한 대상에 대한 표현입니다. 이 대상은 자바스크립트 안에서 "자신의 속성(property)들을 가지고 있는 데이터"로 표현됩니다. 간단한 객체를 하나 만들어 보겠습니다. var shichuan = {}; 각각의 객체들은 프로퍼티(property)와 메서드(method)를 가질 수 있습니다. 메서드도 프로퍼티인데, 특별히 동작을 하는(즉, 함수) 프로퍼티를 메서드라고 부릅니다. 아래의 sh... »

Page 18 of 20«1617181920»