JavaScript 17

javascript, 함수의 호출과 'this'

this 는 또 다른 인자 같은 존재, 호출하는 순간, 호출하는 모양새에 따라 어떤 객체를 가르킬지 결정된다고 합니다. 함수 형태(Function form) functionObject(arguments); 이 경우, 'this'는 전역객체. 메서드 형태(Method form) thisObject.methodName(arguments); thisObject["methodName"](arguments); 이 경우는, 'this'는 thisObject. 생성자 형태(Constructor form) new functionObject(arguments); 생성자 형태에서 'this'는 새로운 객체. 여담으로, 생성자 형태에서 특별한 리턴 값이 없을 경우, 새롭게 생성된 객체 즉, this를 리턴하게 됩니다. ap..

learning 2012.06.14

CoffeeScript, CoffeeScript 가 바로 생각나지 않는 JavaScript 코드들.

"setTimeout" on JavaScript. setTimeout 은 자바스크립트에서 자주 쓰이는 평범한 함수의 형태입니다. setTimeout(function(){ eat('food'); }, 6000); CoffeeScript 코드로 바꾸려면 어떻게 해야 할까요? "setTimeout" on CoffeeScript. 저는 이렇게 작성했습니다. 바로 생각이 나지 않더군요. setTimeout ()-> eat 'food' , 6000 "assert.response" on JavaScript JavaScript TDD 프레임웍인 expresso에서 assert.response 는 이렇게 생겼습니다. assert.response(server, { url: '/foo', method: 'POST', dat..

learning 2011.12.10

CommonJS 두번째 살펴보기.

CommonJS 는 JavaScript API를 정의하는 단체(=Group)이다. 자바스크립트는 빠르고 강력한 언어가 되었지만, 현재의 표준 JavaScript 스팩은 브라우져 환경을 벗어날 수 있는 API를 제공해 주지 못하고 있다. CommonJS 는 JavaScript가 갖지 못한 API, 즉, Java 나 Ruby, Python이 갖고 있는 Standard Library API와 같은 API를 추가로 정의해서, JavaScript를 범용 언어와 같이 만들고자 하는 것이다. CommonJS 에서 가장 먼저 완성한 스팩은 Modules/1.0 이다. (대부분이 말하는 CommonJS 를 따른다. 혹은 CommonJS 이다 라는 표현은, 이 CommonJS 모듈 스팩을 준수하고 있다 라는 뜻이다.) K..

learning 2011.11.10

JavaScript, split과 join으로 구현한, replaceAll 함수

Daum 에 사용되고 있는 Jigu 라는 JavaScript 라이브러리 에는 문자를 치환하는 replaceAll 이라는 함수가 존재한다. 해당 함수는 정규 표현 식을 통한 치환 역시 지원하지만, 난 단순히 텍스트를 치환하는 코드를 통해 느낀 바가 커서 이곳에 기록해 두기로 마음 먹었다. Code function replaceAll(s, findstr, newstr) { // .. 생략, 이곳에서 정규 표현식 처리 .. return s.split(findstr).join(newstr); } 코드의 내용은 어렵지 않다, 단순히 찾고자 하는 단어를 기준으로 자른 배열을 만들고(split), 새로운 단어를 구분자로 사용하는 문자열을 만들라(join)는 코드이다 이 코드가 훌륭하다고 느끼는 이유는 split, j..

learning 2011.10.25

About JavaScript String

The backspash character (\) has a special purpose in JavaScript string ... Is the \' escape, which represents the single quote character. 예전에 읽었던 내용이였는데, 까먹었던 내용이다 겹따옴표(") 사이에 겹따옴표나 홑따옴표(') 사이에 홑따옴표는 백슬래시(\)와 함께 쓰면 된다는 것을. "\"I\'m ok!?\"" 근데, 더 충격적인 사실은, JavaScript 문자열과 JSON 문자열이 다르다는 사실이다.(자세한 내용은 여기서 보자.)

learning 2011.06.14

AsyncTrigger.js

설명 비동기로 호출되는 함수들이 모두 호출되기를 기다린 후, 어떤 작업을 해야 할 경우를 위한 라이브러리. 사용 방법 AsyncTrigger 생성 var aTrigger = new AsyncTrigger(); 감시할 Callback 함수 생성 var cbFunc1 = aTrigger.getCallback(function(response) { // 콜백 함수에서 해야 할 내용 }); var cbFunc2 = aTrigger.getCallback(function(xhrResponse) { // 콜백 함수에서 해야 할 내용 }); onComplete 함수(=이벤트) Override aTrigger.onComplete = function() { // 모든 콜백이 호출된 다음 수행해야 할 작업. } 첨부파일 그리..

learning 2011.03.27

Prototype의 초기화 과정

빈 객체가 생성되면, new 연산자는 해당 객체의 프로토타입을 설정한다. 이때 생성된 객체는 자신을 만들어낸 생성자의 prototype 값을 자신의 프로토타입으로 설정한다. 모든 함수에는 prototype이라는 프로퍼티가 있는데, 이것은 함수가 정의될 때 부터 자동으로 새성되고 초기화 된다. prototype 프로퍼티의 초기값은 프로퍼티가 하나 있는 개체로 지정된다. 이 프로퍼티는 constructor 라고 불리우는 데 프로토타입이 연관되어 있는 생성자 함수를 가르킨다. 자바스크립트 완변가이드, 202 페이지

learning 2011.03.23