저는 OOP에 익숙하지 않고 간단한 JS 함수를 개체 리터럴로 다시 작성하려고 시도하고 있으며 생성자 함수로 다시 작성하려고합니다. 나는 리터럴 버전의 객체를 작성하는데 성공했지만, (생성자 함수 내에서) onclick 이벤트를 처리하는 anon 함수 내에서 범위 문제가 발생했습니다. onclick 이벤트를 작동시키는 방법을 알려주십시오.JS : 스코프 내부 생성자 함수
WORKS객체 리터럴 버전 :
var submit = {
form_id : "",
submit_button_id : "",
submit_form: function(){
var button = document.getElementById(submit.submit_button_id);
var form = document.getElementById(submit.form_id);
button.onclick = function(){
form.submit();
return false;
}
}
}
addLoadEvent(function(){
submit.form_id = "form_vars";
submit.submit_button_id = "but_submit";
submit.submit_form();
});
생성자 함수 버전 어떤이 작동하지 않습니다
function SubmitForm(button_id, form_id){
this.submit_button = document.getElementById(button_id);
this.form = document.getElementById(form_id);
this.submit_form = function(){
// problem function below
this.submit_button.onclick = function(){
this.form.submit();
}
}
}
addLoadEvent(function(){
var form_to_submit = new SubmitForm("but_submit", "form_vars");
form_to_submit.submit_form();
});
P.S. 나는 HTML-DOM 대신에 DOM API 이벤트 핸들러를 사용해야한다는 것을 알고있다. 나는 한 번에 한 가지만 다루고 있습니다.
dojo 또는 jquery와 같은 라이브러리 사용을 고려 했습니까? OO 프로그래밍을 단순화하고 기본 자바 스크립트보다 향상된 이벤트 처리 기능을 제공합니다. – ewh