Bravo
Charlie
Delta
Echo
Foxtrot
Golf
Hotel
India
Juliet(Juliett/Juliette)
Kilo
Lima
Mike(마이크)
November
Oscar(Oskar)
Papa
Quebec
Romeo
Sierra
Tango
Uniform
Victor(Viktor)
Whiskey
Xray
Yankee
Zulu
Posted by 홍반장
Posted by 홍반장
//새 Person 클래스를 만든다. var Person = Base.extend({ // Person 클래스 생성자 constructor: function( name ) { this.name = name; }, //Person 클래스의 간단한 메서드 getName: function() { return this.name; } }); // Person 클래스를 상속하는 새 User 클래스를 만든다. var User = Person.extend({ // User 클래스의 생성자를 만든다. constructor: function( name, password ) { // 부모 클래스의 생성자 메서드를 호출한다. this.base( name ); this.password = password; }, // User 클래스에 간단한 메서드를 추가한다. getPassword: function() { return this.password; } });
Posted by 홍반장
//프로토타입에 새 함수를 연결하는 간단한 헬퍼 Function.prototype.method = function(name,func){ this.prototype[name] = func; return this; } //다른 객체로부터 우아한 방식으로 함수를 상속받으면서 여전히 부모 객체의 함수를 //호출할 수 있게 해 주는 (약간 복잡한) 함수 Function.method('inherits', function(parent){ //상속 계층 안에서 얼마나 깊이 들어왔는지 추척한다. var depth = 0; //부모의 메서드를 상속 받는다. var proto = this.prototype = new parent(); //'uber'라는 privileged 함수를 만든다. //이 함수는 상속 과정에서 덮어쓴 함수를 실행할 수 있게 해 준다. this.method('uber', function(name){ var func; //실행할 함수 var ret; //함수의 반환값 var v = parent.prototype; //부모의 프로토타입 //이미 다른 'uber'함수 안이라면 if(depth){ //근원 프로토타입을 찾아 필요한 만큼 깊이 들어간다. for( var i = depth; i > o; i -= 1){ v = v.constructor.protptype; } //그리고 그 프로토타입에서 함수를 가져온다. func = v[name]; //아니면 'uber'를 처음 호출하는 상황이다. }else{ //실행할 함수를 프로토타입에서 가져온다. func = proto[name]; //함수가 이 프로토타입의 일부였다면 if(func == this[name]){ //대신 부모 프로토타입에 간다. func = v[name]; } } //상속 스택에서 얼마나 깊이 들어왔는지를 추척한다. depth += 1; //첫 번째 전달인자를 제외한 모든 전달인자를 넘기면서 함수를 호출한다. //(첫 번째 전달인자는 우리가 호출하려는 함수 이름을 담고 있다.) ret = func.apply(this, Array.prototype.slice.apply(arguments, [1])); //스택의 깊이를 변경한다. depth -= 1; //함수 호출의 결과값을 되돌려준다. return ret; }); return this; }); //parent 객체에서 new parent()를 사용해 모든 함수를 // 상속받지 않고, 오직 함수 몇개만을 상속받는 함수 Function.method('swiss', function(parent){ for(var i = 1; i < arguments.length; i+= 1){ //상속받을 메서드들을 모두 방문한다. var name = arguments[i]; //메서드를 이 객체의 프로토타입으로 가져온다. this.prototype[name] = parent.prototype[name]; } return this; });
Posted by 홍반장
Posted by 홍반장
Posted by 홍반장
Posted by 홍반장
- 홍반장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |