나는 이전 자바 스크립트의 데이터를 알고있는 모든 함수를 연쇄 할 수있는 작은 자바 스크립트 (프레임 워크)를 작성하고 싶다.jQuery와 같은 체인 가능한 JavaScript 프레임 워크를 구현하는 가장 쉬운 방법은 무엇입니까?
기본적으로 나는 jQuery가 제공하지만 그 학습의 일부를 모방하고 싶습니다. 주로 학습 목적과 데이터를 가지고 싶습니다. 모든 체인 기능에서 사용할 수 있습니다.
나는 예를 들어 같은 것을 할 수있는, 좋아하는 것 :
myJsLib.processForm("user", "pass").url("http://domain.dev/form.php").queryString({ secure: true, errorPage: "login_failure.htm" });
을 위의 예에서 모든 기능을 다른 무엇을하고 있는지 어느 정도 알고 있어야합니다.
또는 더 구체적으로 :
myJsLib.getDataIntoArray(jsonObjectOrWhatever).each(function(item) { alert(item); });
은 "항목이"배열이 될 것이라고 getDataIntoArray() 생성 (반환?).
나는 이것을 적절하게 표현했으면한다. 나는 그 예제를 조금 배제하려고 노력했다. jQuery의 프로토 타입 확장에 대한 의미는 쓸모가 없다는 것을 알았지 만, 나는 자바 스크립트에 전혀 정통하지 않습니다. 나는 상세한 (아직 숙달되지 않은) 설명과 코드 예제를 매우 고맙게 생각한다.
감사합니다.
편집 : 앤드류 덕분에 나는 만족스러운 것으로 생각났습니다. 고마워 할 수있는 오해를 바로 잡아주십시오. 감사합니다.
function myLib()
{
this.properties = ['status', 'window', 'ui'],
this.inputArrayParms = function(parms)
{
for (var i = 0, len = parms.length; i < len; i++)
{
this.properties[this.properties.length] = parms[i];
}
return this;
},
this.each = function(callback)
{
for (var i = 0, len = this.properties.length; i < len; i++)
{
callback(this.properties[i]);
}
return this;
}
}
var f = new myLib;
f.inputArrayParms(["one", "two", "three"]).each(function(theMsg){ alert(theMsg); });
이것은 예상대로 작동하는 것으로 보입니다. 어떤주의 사항?
@Brainsick : "Resolved"를 제목에 추가 할 필요가 없습니다.또한 Andrew의 대답이 문제를 해결하는 데 도움이 되었다면, 예의 옆에있는 옆에있는 체크 표시를 클릭하여 대답을 수락으로 표시해야합니다. –
Gotcha. 정말 죄송 해요! – Brainsick
this.properties [this.properties.length] = parms [i]를 수행하는 for 루프를 간단하게 Array.prototype.push.apply (this.properties, parms)로 바꿀 수 있습니다. –