클로저를 오버라이드하여 원래 클로저의 일부분을 수행 할 수있는 방법이 있습니까? 나는 직접적인 방법이 없다는 것을 알고 있지만, 해킹이 있습니까? 난 당신 스크립트 태그의 내용을 얻기 위해 jQuery를 사용할 수 있다고 생각javascript : 클로저 범위 내의 함수를 호출
<html>
<head>
// I DON'T CONTROL THIS CODE!!!
<script>
;(function() {
function _dothing() {
alert("_dothing");
}
function _doit() {
_dothing();
alert("_doit");
}
window.K = { doit : _doit };
})();
</script>
</head>
<body>
// I DO CONTROL THIS CODE
<script>
function mydoit() {
alert("mydoit");
_dothing(); <-- THIS FAILS, IS THERE ANY WAY TO SUCCEED? :(
}
window.K.doit = mydoit;
window.K.doit();
</script>
</body>
</html>
나는 당신의 범위에서 그것을 본다. 나는 복사 & 붙여 넣기, 그 옵션이 무엇입니까? – Trylks
불행히도 아니오 : 다른 이유 때문에 _dothing()을 복제 할 수 없습니다 (재현 할 수없는 마법 같은 척하면서). 그리고 맨 위의 스크립트 본문을 만질 수 없습니다. – Colin
번호 폐쇄 범위는 변경할 수없는 * 선언 * 함수의 위치에서옵니다. – Bergi