//Exposing the properties of the katana object using with(){}. var use = "other"; var katana = { isSharp: true, use: function(){ this.isSharp = !this.isSharp; } }; with ( katana ) { assert( true, "You can still call outside methods." ); isSharp = false; use(); assert( use !== "other","Use is a function, from the katana object." ); assert( this !== katana,"this isn't changed - it keeps its origin..
function RegMerge() { var expr = []; for ( var i = 0; i < arguments.length; i++ ) expr.push( arguments[i].toString().replace(/^\/|\/\w*$/g, "") ); return new RegExp( "(?:" + expr.join("|") + ")" ); } var re = RegMerge( /Ninj(a|itsu)/, /Sword/, /Katana/ ); assert( re.test( "Ninjitsu" ),"Verify that the new expression works." ); assert( re.test( "Katana" ),"Verify that the new expression works." )..
* 함수의 사용 function isNimble(){ return true; } var canFly = function(){ return true; }; window.isDeadly = function(){ return true; }; //함내의 함수 function stealthCheck() { var ret = stealth() == stealth(); assert( ret, "함수함수!" ) return true; function stealth(){ return true; } } stealthCheck(); var obj = {}; var fn = function(){}; obj.prop = "some value"; fn.prop = "some value"; assert( obj.prop == fn..
내가 알고 있는 내용 알고리즘을 설계시 반드시 생각 해야 하고, 같은 여러번 생각해서 추상화해야 한다. 알고리즘을 캡슐화 한다. 공통되는 부분을 일반화 하여, 부모로 부터 상속 받아 기능을 사용한다. 알고리즘의 여러 단계 중 일부는 서브 클래스에서 구현 알고리즘의 구조는 그대로 유지하면서 서브 클래스에서 특정 단계를 재정의 할 수 있습니다. 역활 상속을 이용하여 알고리즘의 처리한다. 알고리즘의 생성시 중요한 역활을 한다. 특정 단계의 처리를 하위클래스에 위임 한다. 책임 알고리즘 골격을 정의한다.var $console = $("#result"); function shop() {} shop.prototype = { sellprepare : function(){ this.request(); this.prod..
호출을 캡슐화 한다. 어떤 때 쓰면 좋을까 ? ( 내생각 ) 프로그램이 처리 댈 때 매 요청 마다 검증이 필요할때 혹은 요청을 가공할 때 혹은 요청을 되돌리거나, 요청에 대한 기록을 할 때 .. 혹은 요청에 일괄 실행이나 특정 부분까지만 실행 하도록 할때 ! var employee = function(){}; employee.prototype = { call : function(){ alert('can i help you?'); }, orderup : function() { alert('did you choose the menu? '); } } var employeeCall = function(emp) { this.employee = emp; }; employeeCall.prototype.execute ..