자바스크립트 7

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

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

replace 의 두번째 function의 매개변수에 관하여...

JavaScript String 객체에는 replace 라는 함수가 있다. 일반적인 사용은 다음과 같다. > "Handsome Guy".replace("Guy","Sangpil") 'Handsome Sangpil' 하지만 복잡하게 사용할 수도 있다. 우선 첫번째로 "Guy" 대신, 정규표현식이 들어갈 수 있고, "Sangpil"대신 함수가 들어갈 수 있다. 다음처럼,... > "Handsome Guy".replace(/Guy/, function(){return "Sangpil";}); 'Handsome Sangpil' 이런 형태로 쓰일때, 함수는 기본적으로 다음과 같은 매개변수를 받게 된다. 첫번째 - 정규표현식과 일치하는 문자열 두번째 - 정규표현식 내에 존재하는 첫번째 구룹문자. 세번째 - 정규표현식..

learning 2011.01.27

자바스크립트 this에 대한 오해와 진실(The this keyword of javascript)

기존에 내가 알고 있던 this 에 대한 이해 - 모든 메소드는 메소드를 실행하는 객체를 this로 가르킨다. 이건 오해였다. 그런가?.. 실제로 동작하는건 다음과 같았다. 우선 alertName 이라는 함수를 생각해 보자. var Babo = function() { this.name = "바보"; }; Babo.prototype.alertName = function() { alert(this.name); }; var babo = new Babo(); babo.alertName(); alertName은 위와 같이 단순히 this의 name 속성을 화면에 띄워주는 역할을 한다. 위의 예제를 실행하며, "바보"가 출력될 것이다. 다음과 같이 버튼의 onclick 이벤트에 함수를 할당 해주면, Who am I..

learning 2009.12.03