var callBackMethod = "hash"; /* * key 방식 * */ /* * var callbackKey = lbbCallBackHash.addCallBack('test122'); var callbackKey1 = * lbbCallBackHash.addCallBack('test1111122'); * * var callback1 = lbbCallBackHash.removeCallBack(callbackKey1); var callback = * lbbCallBackHash.removeCallBack(callbackKey); * * * console.log("key:"+callbackKey1+",callback:"+callback1); * console.log("key:"+callbackKey+",callback:"+callback); */ var lbbCallBackHash = (function(lbbCallBackHash, $, undefined) { // $ = jQuery임 전역번수를 지역변수로 전달하면 실행함수내에서 지역변수로 사용 //하기때문에 탐색작업이 좀더 빨라진다 var callbacks; var keys; self.randomString = function(length) { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz' .split(''); if (!length) { length = Math.floor(Math.random() * chars.length); } var str = ''; for ( var i = 0; i < length; i++) { str += chars[Math.floor(Math.random() * chars.length)]; } return str; }; lbbCallBackHash.push = function(callback) { // 외부 노출 함수 public var key = randomString(16); console.log(typeof keys); if (typeof keys == 'undefined') keys = []; if (typeof callbacks == 'undefined') callbacks = []; console.log(typeof keys); console.log(typeof callbacks); keys.push(key); callbacks.push(callback); return key; }; lbbCallBackHash.pop = function(key) { // 외부 노출 함수 public var index; var callback; if ((index = keys.indexOf(key)) >= 0) { keys.splice(index, 1); callback = callbacks[index]; callbacks.splice(index, 1); } return callback; }; return lbbCallBackHash; // 리턴을 해야함 })(window.lbbCallBackHash || {}, jQuery); // 객체 없으면 생성 // fifo 방식 var lbbCallBackStack = (function(lbbCallBackStack, $, undefined) { // $ = jQuery임 전역번수를 지역변수로 전달하면 실행함수내에서 지역변수로 사용 //하기때문에 탐색작업이 좀더 빨라진다 var callbacks; lbbCallBackStack.push = function(callback) { // 외부 노출 함수 public if (typeof callbacks == 'undefined') callbacks = []; callbacks.push(callback); }; lbbCallBackStack.pop = function() { // 외부 노출 함수 public var index; var callback; if ((index = (callbacks.length - 1)) >= 0) { callback = callbacks[index]; callbacks.splice(0, 1); } return callback; }; return lbbCallBackStack; // 리턴을 해야함 })(window.lbbCallBackStack || {}, jQuery); // 객체 없으면 생성
댓글
댓글 쓰기