2011-01-27 5 views
1

삽입 스크립트로 자바 스크립트 기능을 수정/확장하려면 어떻게합니까?

function foo(param){ 
// original works 
} 

...이 기능을 말할 수 있습니다 HTML 문서에 자리에서 이미.

문서에 외부 스크립트를 삽입하는 북마크릿이 있습니다. 해당 스크립트에서, 나는 삽입 된 스크립트의 새로운 기능입니다) (... 이것으로

function foo(param){ 
// original works 
bar(param); 
} 

바 foo는() 함수의 동작을 수정하고 싶습니다. 삽입 된 스크립트에서 foo를 복제하는 데 문제가 없습니다.

어떻게하면됩니까?

답변

2

자바 스크립트의 모든 기능을 포함하여 개체가 될 수 있습니다. 이를 염두에두고, 당신은 이전 기능의 중복을 만들 수 있습니다 중복 참조하면서, 새로운 하나를 오버라이드 (override) :

function foo(param){ 
// original works 
} 

var old_foo = foo; 

function foo(param) { 
old_foo(param); 
bar(param); 
} 
+0

내가 왜, 내가이 비슷한을 테스트했다 모르는 및 죄송합니다 예외 : * RangeError : 새 foo를 실행했을 때 최대 호출 스택 크기를 초과했습니다. 추신 : +1. – JCOC611

+2

@ JCOC611 그게 ... <선글라스에 박았> ... StackOverflow? YEEEEEaaaaaah! –

+3

old_foo()의 반환 값을 저장하고 새로운 foo()?에서 반환하는 것이 더 정확할까요?'function foo (param) {var ret = old_foo (param); bar (param); return ret;}' – david

관련 문제