// script1.js
jQuery(document).ready(function($) {
var somevar;
$('somelem').myPlugin();
});
// script2.js
(function($) {
$.fn.myPlugin = function(options) {
// access and modify 'somevar' here so that it gets modified
// in the function which called a plugin
};
});
- 내가 '의 somevar'변수는 플러그인에 의해 수정 얻을 내가 에 더 이미 수정 된 변수와 함께 작동 할 수있을 것입니다 원하는 다음과 같은 구조 플러그인 호출자 함수의 범위입니다.
- 전역 변수를 사용하고 싶지 않습니다.
- 은 플러그인 함수에 로컬이되고 수정하면 은 내가 알기에 원래 변수를 수정하지 않으므로 변수를 플러그인에 옵션으로 전달하지 않습니다.
- 자바 스크립트가 작동하는 방식에 대한 개념이 잘못 이해 될 수 있으므로 답변에 감사드립니다.
자바 스크립트의 범위는 매우 복잡 할 수 있으며, 내가 jQuery를 사용하지 않는,하지만 나에게 그것은의 somevar 변수는 지역 범위가 같다 익명의 함수에 포함되어 있기 때문에 'var'로 인스턴스화했습니다. –
@jayp 물론이 지역입니다. 그것은 실제로 문제가되는 문제입니다. 나는 그것을 세계화하고 싶지 않다. 글로벌하게 만들면 문제는 해결되지만 IE에서 메모리 누수가 발생합니다. 왜냐하면 'somevar'는 실제 스크립트에서 많은 양의 데이터를 처리하고 IE는 올바르게 관리하지 못하기 때문입니다. – noname
이것 좀 봐 -> http://stackoverflow.com/questions/1830496/jquery-make-global-variable-available-to-multiple-plugins – ManseUK