목록/JavaScript (24)
남고생들의 소소한 개발 일지
Object Object 객체는 객체의 가장 기본적인 형태를 가지고 있는 객체이다. var arr = ["a", "b", "c"]; console.log('object.keys(arr)', Object.keys(arr)); // object.keys(arr) (3) ["0", "1", "2"] var a = [1,2,3]; a.toString(); // "1,2,3" 자바스크립트의 모든 객체는 Object 객체를 상속받는다. 때문에 모든 객체는 Object 객체의 프로퍼티를 가지고 있다. Object 객체를 확장하면 모든 객체가 접근할 수 있는 API를 만들 수 있다. Object.prototype.contain = function(needle) { for(var name in this) { if(thi..
오늘은 표준 내장 객체(Standard Built-in Object)에 대해 설명을 하고자 한다. 오늘은 표준 내장 객체(Standard Built-in Object)란 자바스크립트가 기본적으로 가지고 있는 객체들을 의미한다. 자바스크립트는 아래의 내장 객체를 가지고있다 Object Function Array String Boolean Number Math Date RegExp object 생성자는 주어진 값을 객체 래퍼를 생성 하는 객체이다 주어진 값이 null이거나 undefinded면 빈 객체를 생성해 반환하고 그렇지 않으면 값에 알맞는 자료형의 객체를 반한다. // 객체 초기자 또는 리터럴 { [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ]..
prototype이란 객체의 원형이라고 한다. 아래의 예제를 보면 결괏값은 true가 나온다. 15행에서 a 안에는 medium 함수를 통해 만들어진 객체가 들어가지고, medium.prototype에는 bleu에서 만들어진 객체가 들어가 있다. 그래서 a.bleuprop안에는 10행에서 만든 true라는 값이 들어가 있다. 간단히 요약하자면 prototype은 저장된 속성들을 생성자를 통해서 객체를 만들 때 객체랑 이어주는 역할을 한다고 생각을 하면 된다. 참고 생활코딩
상속 프로그래밍에서의 상속이란 부모 기능을 자식 넘겨주는 것을 의미한다. 상속을 통해서 코드의 중복을 줄일 수 있고, 공통된 기능을 한 곳에서 작성함으로서 코드의 관리가 쉬워진다. 먼저 상속의 기본 사용법을 알아보자. function Green(color) { this.color = color; } Green.prototype.color=null; Green.prototype.paint = function(){ return 'Color is ' + this.color; } function Apple(color) { this.color = color; } Apple.prototype = new Green(); var gr = new Apple('green'); document.write(gr.paint()..
전역객체 모든 객체는 이 전역객체의 프로퍼티이다. 먼저 간단한 예제를 보면 function test() { alert('Hello?'); } 이런 자바스크립트의 소스코드가 있다. 여기서 alert를 실행하려면 함수를 호출시켜야하는데 보통 test(); 라고 호출을 한다. 하지만 사실 test(); 앞에는 window.test(); window 라는 전역객체가 있다. test는 window라는 전역객체의 메소드라고 볼 수 있다. 매번 window를 쓰는 것이 불편해 생략해도 함수를 호출시킬 수 있도록 암묵적으로 명시된다. 다른 예제로 var a = {'test':function(){ alert('Fi'); } } a라는 변수는 test라는 메소드를 가지고 있다. a라는 윈도우 객체의 프로퍼티이다. a.te..
객체란 서로 연관된 변수와 함수를 그룹핑한 그릇이라고 할 수 있습니다. 객체 내의 변수를 프로퍼티(property) 함수를 메소드라고 합니다. 아래 예제를 한번 보겠습니다. var person1 = { 'name' : 'A', 'introduce' : function(){ return 'My name is '+this.name; } } var person2 = { 'name' : 'B', 'introduce' : function(){ return 'My name is '+this.name; } } 이름은 다르지만 메소드가 같습니다. 이것을 중복이라고 부르며 이 문제를 해결하는법은 중복을 제거 하는것이고 그 방법이 생성자와 New 입니다. 생성자 생성자는 객체를 만드는 역활을 하는 함수 입니다. 자바스크립..
arguments란 arguments 객체는 함수에 전달된 인수에 해당하는 배열 형태의 객체이다. 여기서 결과는 가 나온다. 이유는 arguments 안에는 사용자가 전달한 인자가 2개이기 때문이다. 매개변수의 수 매개변수와 관련된 두 가지 수가 있는데 하나는 함수.length, 다른 하나는 arguments.length이다. arguments.length는 실제로 함수에게 전달되는 인자의 수를 의미하고, 함수.length는 함수에 정의된 인자의 수를 의미한다. 아래의 코드를 보자. arguments.length의 값은 1, 2, 3, 4가 나오고 sum.length의 값은 sum 함수에 인자 값이 없기때문에 0이 나온다. 참고 생활코딩
클로저란 내부함수가 외부함수의 맥락에 접근할 수 있는것 을 가킨킨다고 한다. 클로저에 대해 알아보기 전에 내부함수와 외부함수에 대해서 알아보자 내부함수 다음 코드를 봤을 때 두 개의 함수가 등장한다. outter와 outter내부에 inner가 정의되어 있다. 밖에 있는 outter를 외부함수, 안에 있는 inner를 내부함수라고 한다. function outter(){ var title = '클로저예제1'; function inner(){ alert(title); } inner(); } outter(); inner함수에서는 inner밖에 있는 title란 변수를 사용할 수 있다. 그래서 위 코드를 실행시켜보면 '클로저예제1'가 출력이 될 것이다. 클로저 클로저는 내부함수가 외부함수의 맥락에 접근할 수 ..