prototype.js에 새롭게 정의된 객체와 클래스
* PeriodicalExecuter 객체
이 객체는 주어진 함수를 주어진 시간간격으로 반복적으로 호출하기 위한 로직을 제공한다.
- [ctor](callback, interval)
callback : 파라미터 성격이 아닌 함수
interval: 호출할 초단위 시간간격
함수를 반복적으로 이 객체의 하나의 인스턴스를 생성
var tm = new PeriodicalExecuter(function(){alert("열려라 참깨~~!");},2);
위 tm 객체는 2 초에 한번식 "열려라 참깨~~!" 라는 alert 창을 띄웁니다.
함수는 외부에 정의가 되도 당연히 되겠죠.
alert 창을 닫은후 2초 후에 다시 띄웁니다.
중복 수행되지 않는 다는말이죠.
- currentlyExecuting
이 프로퍼티는 객체에서 호출된 함수가 진행중인가에 대한 Boolean 값입니다.
* Prototype 객체
이 객체는 라이브러리의 버전을 가지고 있고 특별한 기능은 없다.
- Version
Prototype 의 버전을 String 로 가지고있다.
- emptyFunction
비어있는(empty) 함수 객체
- K
주어진 파라미터를 되돌리는 함수 객체
- ScriptFragment
스크립트를 확인하는 정규식 표현
이 객체는 그냥 넘어가겠다. 별로 중요하지 않다고 하니..
* Enumerable 객체
이 객체는 LIST 유형의 객체이고 반복구조에 적함하도록 되어고 유용한 속성을 많이 가지고있어서 만은객체들이 이를 계승받아서 작성된다.
+ 프로퍼티
- Version
라이브러리의 버전
+ 메소드
- each(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
주어진 iterator함수를 호출하고 그것은 첫번째 인자로 목록의 각각의 요소와
두번째 인자로 요소의 인덱스 전달한다.
- all([iterator])
iterator: Function(value, index)를 충족하는 함수 객체
주어진 함수를 사용하여 전체 값을 테스트한다.
전체의값중 하나라도 null 이나 false 를 리턴하면 이 함수는 false 를리턴 하고 전체가
true 인 경우 true 를 리턴한다.
iterator가 주어지지 않는다면, 요소 자체가 false 나 null이 아닌지 체크 할 것이다.
- any(iterator)
iterator: Function(value, index)를 충족하는 함수 객체(선택사항)
이 함수는 all 과 비슷하나 전체값 중 어느 하나만 true 인 경우 true 를 반환한다.
all 함수가 전체 요소에 대해서 and 관계연산을 한다고 하면 any 함수는 전체 요소에 대해
OR 관계연산을 한다고 볼 수 있다.
- collect(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
집합내 각각의 요소를 위한 iterator함수를 호출하고 Array로 각각의 결과를 반환한다.
집합내 각각의 요소를 위한 하나의 결과 요소는 같은 순서이다.
- detect(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
집합내 요소중 최초로 true 결과를 주는 첫 요소를 리턴한다.
true를 반환하는 요소가 없다면, detect는 null을 반환한다.
- entries()
array 로 값들을 추출해낸다.
- find(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
detect()와 같다.
- findAll(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
집합내 요소중 최초로 true 결과를 주는 모든 값을 Array을 반환한다.
이 함수는 reject()와는 반대의 함수이다.
- grep(pattern [, iterator])
pattern: 요소를 일치시키기 위해 사용되는 정규식 표현(RegExp객체 - 정규식은 어렵다 )
iterator: Function(value, index)를 충족하는 함수 객체
유닉스의 grep 명령어 와 비슷하다.
집합내 각각의 요소의 문자열 값을 pattern 정규표현식에 대해 체크하고 정규표현식에
대응되는 모든 요소를 포함하는 Array 를 반환한다.
iterator함수를 사용하면 정규식에 대응되는 값들을 찾아서 iterator 함수에 넣고
그 결과값을 Array 에 저장한다.
- include(obj)
obj: 집합내 주어진 객체를 찾도록 시도한다.
객체가 찾아진다면, true를 반환하고 찾지 못한다면 false를 반환한다.
- inject(initialValue, iterator)
initialValue: 초기화 값처럼 사용되는 객체
iterator: Function(accumulator, value, index)를 충족하는 함수 객체
잡합의 모든 요소를 accumulator 아규먼트에 initialValue 를 초기값으로 누적한다.
- invoke(methodName [, arg1 [, arg2 [...]]])
methodName: 각각의 요소내에서 호출될 메소드의 이름
arg1..argN: 메소드 호출로 전달될 인자.
집합의 각각의 요소내의 값을 methodName함수를 (arg1에서 argN)인자로 호출하고
그 결과를 Array객체에 담아 반환한다.
- map(iterator)
iterator: Function(value, index)를 충족하는 함수 객체 collect()과 같다.
- max([iterator])
iterator: Function(value, index)를 충족하는 함수 객체
집합내 가장 큰 값이나 iterator가 있으면 iterator호출 결과중 가장 큰 값을 반환한다.
- member(obj)
obj: 객체 include()과 같다.
- min([iterator])
iterator: Function(value, index)를 충족하는 함수 객체
max 와 반대로 가장 작은값이나 가장 작은 iterator 결과를 반환한다.
- partition([iterator])
iterator: Function(value, index)를 충족하는 함수 객체
true 를 반환하거나 iterator결과가 true 인 모든 요소 배열과, 나머지 모든 요소들의 배열
2 개의 배열을 반환한다.
- pluck(propertyName)
propertyName : 각각의 요소로부터 읽어들이는 프라퍼티의 이름.
이것은 요소의 인덱스를 포함할수 있다.
집합에서 propertyName과 같은 프라퍼티의 값을 Array객체로 반환한다.
- reject(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
집합에서 iterator함수의 결과가 false인 모든 요소를 Array로 반환한다.
이 함수는 findAll()과는 반대되는 함수이다.
- select(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
findAll()과 같다. ( reject 와반대이다. ㅎㅎㅎ)
- sortBy(iterator)
iterator: Function(value, index)를 충족하는 함수 객체
iterator함수호출결과를 정렬하여 Array로 반환.
- toArray()
집합의 모든 요소를 Array로 반환.
- zip(collection1[, collection2 [, ... collectionN [,transform]]])
collection1 .. collectionN: 병합될 목록
transform: Function(value, index)를 충족하는 함수 객체
여러개의 집합을 인수로 받아서 인댁스가 동일한 값끼리 배열로 만들고
그 배열들을 모아서 2 차원 배열로 반환한다.
transform함수가 있으면 각각의 내부 배열은 transform함수에 의해서 변형된다.
예제 : [1,2,3].zip([4,5,6], [7,8,9]).inspect() 는 "[[1,4,7],[2,5,8],[3,6,9] ]" 를 반환한다.
* Hash 객체
해시구조를 구현한다.
해시는 자료구조중 키로 주소를 연산해내는 방법으로 부고 키와 키값 쌍으로 파라메타를 넘기는따위에 많이 사용된다.
Hash객체내 각각의 항목은 두개의 요소(첫번째는 key, 두번째는 value)를 가진 배열이다.
- keys()
모든 항목의 key를 가진 Array을 반환
- values()
모든 항목의 value를 가진 Array을 반환
- merge(otherHash)
otherHash: Hash 객체
hash와 전달된 다른 hash를 조합하고 새로운 결과 hash를 반환
- toQueryString()
쿼리 문자열처럼 포맷팅된 문자열로 hash의 모든 항목을 반환한다.
'key1=value1&key2=value2&key3=value3' 이런 형식으로 반환하므로 url 의 파라메타 등으로
사용하기 적당하다.
- inspect()
key:value쌍을 가진 hash의 포맷팅된 문자열 표현을 반환하기 위해 변경(오버라이드)
* ObjectRange 클래스
Enumerable으로부터 상속
상위 경계나 하위 경계로 값들의 범위를 표시 한다.
반복을 위해서 사용되어지는것 같다. 범위 내의 값은 기억하고 있지않고 단지 처음과 끝 그리고 처음값과 끝값이 포함되는디( > 인지, >= 인지 )에 대한 정보만을 가지고있다.
+ 프로퍼티
- start (any)
범위의 시작값
- end (any)
범위의 마지막값
- exclusive
instance 경계자체가 범위의 일부인지 판단
+ 메소드
- [ctor](start, end, exclusive)
start: 시작값
end: 마지막값
exclusive: 경계가 범위내 포함되는가 ?
하나의 range객체를 생성한다.
start 에서 end로 범위를 지정한다.
start 와 end가 같은 타입의 객체이고 succ()메소드를 가져야만 한다.
- include(searchedValue)
searchedValue: 검색할 값
주어진 값이 범위내 값인지 체크. true 나 false값을 반환한다.
* Class 객체
Class 객체는 라이브러리에서 다른 클래스를 선언할때 사용된다.
클래스를 선언할때 이 객체를 사용하는 것은 생성자로 제공되는 initialize()메소드를 지원하기 위한 새로운 클래스를 발생시킨다. (어렵다..ㅠ.ㅠ)
//class 객체를 사용해서 클레스를 생성한다.
var MySampleClass = Class.create();
//생성한 클레스를 prototype 로 정의한다.
// 아마 자바스크립트는 기존에있는 클레스를 재정의 하기만하고 생성하지는않는가보다.
MySampleClass.prototype = {
initialize: function(message) {
this.message = message;
},
showMessage: function(ajaxResponse) {
alert(this.message);
}
};
//새로 생선한 클레스를사용하여보자
var myTalker = new MySampleClass('hi there.');
myTalker.showMessage(); //메세지가 alert 창으로 뜰것이다.
- create(*)
새로운 클래스를 위한 생성자를 정의