2010-04-08 2 views
0

저는 자바 스크립트를 처음 접했지만 더 잘 이해할 수있는 작업을 수행했습니다. 그러나 jQuery에 몇 가지 문제가 있습니다. 다음 자바 스크립트는 제 3 자 jQuery 플러그인에있는 코드이며 여기서는 자체 구현을 위해 funFunction() 함수를 재정의 할 수 있기를 바랍니다. 이것이 가능합니까, 그렇다면 어떻게 할 수 있습니까? 나는 검색의 공정한 금액을 해왔와 같은 것들을 사용하여 함수를 오버라이드 (override)하기위한 방법의 숫자를 시도 :자바 스크립트의 딥 함수 오버라이드

jQuery.blah.funFunction = function() { alert("like this"); }; 

홈페이지 코드 : 내가하려고하는 더 관심이 들어

(function($) { 
    $.extend({ 
     blah: new function() { 
      this.construct = = function(settings) { 
       //Construct... stuff 
      }; 
      function funFunction() { 
      //Function I want to override 
      } 
     } 
    }); 
})(jQuery); 

사용자가 열을 정렬 할 수있는 유일한 방법은 오름차순입니다.

편집 :

결과적으로이 플러그인을 사용하는 WP-테이블 리로디드를 사용하는 워드 프레스 설치가 있습니다. 이 플러그인의 핵심 코드를 변경하고 싶지는 않습니다. 업데이트가 있었으면 전임자가 내가 한 일을 정확히 알고 있었기 때문입니다.

저는 오랫동안 프로그래밍을 해왔고 jQuery를 보는 동안 자바 스크립트를 쉽게 선택할 수 있어야한다고 생각했습니다. 나는 이것을 위해 무엇을해야하는지 정확히 알고 있습니다. 어떻게이 함수를 오버라이드 할 수있는지는 아닙니다.

+1

jQuery는 자바에 익숙해지기를 원한다면 방법이 아닙니다. 먼저 순수한 자바 스크립트를 사용해보십시오. – Abbas

+0

당신은 그것을 재정의 할 수 없습니다 ... 지역 변수이고 정의 된 범위 내에서만 (그리고 어떤 클로저에서도) 사용할 수 있습니다. – James

+0

반대표를 드리겠습니다 - 일반적으로 프로그래밍에 익숙하다면 개념을 분명하게 유지하면 Javascript와 jQuery를 동시에 배울 수 있습니다. jQuery *는 * Javascript이며, 도구 및 기능을 제공하기 위해 언어의 유연성을 활용한다는 점을 기억하십시오. – Pointy

답변

2

jQuery를의 좋은 점은 그 플러그인은 아주 당신이 원하는 것을하지 않으면 할 수 있습니다 같은 일을 또 다른 플러그인에 대한

  • 봐;
  • 플러그인을 잡아, 그것은 GPL을인지 그냥 해결

내 경험은 대부분의 플러그인이 꽤 좋은,하지만 그들은 신들에 의해 작성하지 않을 것입니다 그래서 때로는 문제 또는 때때로 당신이 필요 그냥 일이있다 디자이너가 예기 한 것에서 비스듬히.

이제 : 당신은 정말로 당신이하고 싶은 것과 당신의 요구가 무엇인지에 대해 진지한 생각을해야합니다. 그리고 초보자로서 당신이 가져 오는 "올바른 방법"에 대해 어떤 종류의 가정을해야합니까? 그 파티. 모든 프로그래밍 환경에는 거의 고유 한 성격이 있습니다. 이상하거나 나쁜 것이나 추한 것처럼 보일 수 있지만 외부인은 모든 관용구에 익숙해 질 때까지 판단을 중지해야합니다.

+0

안녕하십니까, 귀하의 의견에 감사드립니다. 왜 제가 플러그인을 다시 작성하고 싶지 않은지에 대한 정보를 마지막에 추가 할 것입니다. –

+1

@PintSizedCat - 환경 설정이 무엇이든 ... 불행히도이 경우 중요하지 않습니다. 편집하지 않고 편집 할 수 없습니다 : a) ** 플러그인 ** 또는 b) 다른 플러그인 , 아마도 자신의. –

+0

좋아, 누군가가 환상적인 방법을 찾으면 열어 둡니다.) –

0

어쨌든 마이너 라이브러리의 업데이트는 누가 중요합니까? 사용 된 버전이 필요한 것을 수행하고 적용 가능한 버그가없는 한 업그레이드에서 이득이 없습니다.

어쨌든 액세스 가능한 상위 함수를 다음과 같은 문자열로 검색하는 것은 절대로 권장되지 않습니다. functionAsString=""+functionName 편집이 필요한 항목을 편집 한 다음 함수를 다시 생성하십시오 : functionName=eval("("+functionAsString+")"). 그러나 그렇게 할 수 있습니다.

다른 브라우저는 함수를 문자열로 변환 할 때 약간 다른 결과를 반환하지만 정확한 함수의 모든 유효한 선언이므로 차이점을 정규식으로 사용할 수 있어야합니다.

또는 ajax 호출을 사용하여 스크립트 파일을 검색 한 다음 위와 동일하게 수행 할 수 있습니다. 나는 아직도 그것을 추천하지 않을 것이다.