2012-11-05 4 views
1

저는 자바 스크립트 객체 지향 개발을 이해하기에 매우 새롭습니다. 그래서 jQuery를 소스 코드를 읽고 목표는 코드를 복사되지는 않지만 내 사용자 지정 libs와 동일한 개념을 구현하지만, OOP way.Here에서 기능의 소수를 생성하여 이해하기 위해 시도하고 내 코드 ..자바 스크립트에서 OOP 이해하기

(function (window) { 
var myCustomClass = function() { 
    debugger; 
    return new myCustomClass.mycustomFunction.Init(); 
}; 
myCustomClass.mycustomFunction= myCustomClass.prototype = { 
    Init: function() { 
     return this; 
    }, 
    alert: function() { 
     alert('I got called'); 
    } 
}; 
window.$ = window.mQuery = myCustomClass; 
})(window); 

과 노력이다 이 방법으로 사용하려면 :

mQuery().alert(); 

그러나 오류가 발생합니다. 문제는 없지만 사용할 수는 없습니다. 내 생각에, 나는 약간의 개념을 놓치고있다, 나를 올바른 방향으로 인도 해주세요.

+1

HTTP : 당신이 생성자에서 체인 기능을 할 수있는 방법 "jQuery를 스타일"를 찾는 경우

, 당신은 선발로이 간단한 패턴을 시도 할 수 있습니다 // eloquentjavascript .net/contents.html은 JavaScript OOP를 이해하기위한 좋은 출발점입니다. 특히 6 장과 8 장을 참고하십시오. –

+0

즉각적인 답장을 보내 주셔서 감사합니다. 저는 이미 JS OOPS의 기본 사항을 파악하고 있지만 여전히 문제를 직면하고 있습니다. – paritosh

+0

jQuery의 파울 OOP 패턴을 이해하기 위해 [이 질문] (http://stackoverflow.com/q/12143590/1048572)을 확인하십시오 - 사용하지 마십시오 – Bergi

답변

1

jQuery 소스 코드를보고 그 개념을 모방하려고하는 것은 반드시 자바 스크립트 OOP 학습 곡선을 시작하는 좋은 방법은 아닙니다. 좀 더 간단하고 기본적인 책으로 시작하고 소스 코드에서 꽤 복잡한 라이브러리를 이해하기 전에 먼저 작업 해 보시기 바랍니다.

var myCustomClass = function() { 
    // initialize a new instance 
    if(!(this instanceof myCustomClass)) { 
     return new myCustomClass(); 
    } 
}; 
myCustomClass.prototype = { 
    constructor: myCustomClass, 
    // add some custom methods 
    alert: function() { 
     window.alert.apply(window, arguments); 
     return this; 
    }, 
    write: function(str) { 
     document.body.innerHTML = str; 
     return this; 
    } 
}; 

myCustomClass().alert('foo').write('bar'); 

+0

코드가 변경되었습니다. 오타가 실수로 작성된 것이 아닙니다. – paritosh

+0

여전히 클래스 프로토 타입에서 Init 프로토 타입을 복사하는 것과 같이 중요한 일부분은 잊어 버리고 있습니다 :'myCustomClass.mycustomFunction.Init.prototype = myCustomClass.prototype'. 그러나 그것이 무엇인지 또는 어떻게 작동하는지 모를 경우 왜 그것을 구현하고 싶습니까? – David

+0

덕분에 많은 David.It 작동합니다 .. – paritosh

관련 문제