2013-11-14 1 views
1

이 두 문은 동일하므로 하나의 명령문을 만들고 싶습니다.이 두 함수를 하나의 함수에 넣으 려합니다.

다른 말로하면이 코드의 단축키를 하나의 기능으로 만들고 싶습니다. 그런 다음

function chose1() {   
     if (document.getElementById("Button1").click = true) { 
      if (document.getElementById('Button1').value == "") { 
       document.getElementById('Button1').value += nextTurn; 
       document.getElementById('Button1').style.fontSize = "30px"; 
       document.getElementById('Button1').style.color = 'Blue'; 
       if (document.getElementById('Button1').value == "O") { 
        document.getElementById('Button1').style.color = 'Red' 
       } 
        changeTurn(); 
      } 
     } 

     } 
     function chose2() { 
      if (document.getElementById("Button2").click = true) { 
       if (document.getElementById('Button2').value == "") { 
        document.getElementById('Button2').value += nextTurn; 
        document.getElementById('Button2').style.fontSize = "30px"; 
        document.getElementById('Button2').style.color = 'Blue'; 
        if (document.getElementById('Button2').value == "O") { 
         document.getElementById('Button2').style.color = 'Red' 
        } 
        changeTurn(); 
       } 
      } 

     } 

답변

3
function chose(id) { 
     var btn = document.getElementById(id) 
     if (btn.click = true) { 
      if (btn.value == "") { 
       btn.value += nextTurn; 
       btn.style.fontSize = "30px"; 
       btn.style.color = 'Blue'; 
       if (btn.value == "O") { 
        btn.style.color = 'Red' 
       } 
       changeTurn(); 
      } 
     } 

chose("Button1"); 
chose("Button2"); 

이것은 솔루션입니다뿐만 아니라,하지만 당신이, document.getElementById()처럼 그 리드를 DOM 요소에 액세스하는 횟수 하나의 함수에서 보면 두 가지로 두 가지 기능을 joinig에 대한 성능 저하. 변수에 참조를 저장하고 다시 참조하십시오. like

var btn = document.getElementById(id) 
+0

정말 고마워요. – user2751035

+0

노력에 감사드립니다. – user2751035

2

대신 "Button1을"또는 "Button2를"의 id 사용; 당신이 요청하기 전에 검색 한? ...

0

Refactoring입니다. 이 세상에는 많은 좋은 책들이 있습니다.

당신은 할 수 있습니다 :

function chose(button) {  
    clickedButton = document.getElementById(button); 

     if (clickedButton.click = true) { 
      if (clickedButton.value == "") { 
       clickedButton.value += nextTurn; 
       clickedButton.style.fontSize = "30px"; 
       clickedButton.style.color = 'Blue'; 
       if (clickedButton.value == "O") { 
        clickedButton.style.color = 'Red' 
       } 
        changeTurn(); 
      } 
     } 

} 
0

당신은 (버튼 ID) 변수가 무엇인지 받아들이는 하나의 메소드로 리팩토링 할 수 있습니다. 그리고 나는 당신에게 더 나은 것을 줄 것이라고 제안합니다. 조직 및 성능은 다음과 같은 결과를 변수에 할당하는 것입니다 : document.getElementById (button_id),이 평가를 수행하는 각 줄 대신에 변하기 쉬운.

function _buttonChoser(button_id) { 
    var button_element = document.getElementById(button_id); 
    if (button_element.click = true) { 
     if (button_element.value == "") { 
      button_element.value += nextTurn; 
      button_element.style.fontSize = "30px"; 
      button_element.style.color = 'Blue'; 
      if (button_element.value == "O") { 
       button_element.style.color = 'Red' 
      } 
      changeTurn(); 
     } 
    } 
}; 

function chose1() {   
    _buttonChoser('Button1') 
}; 
function chose2() { 
    _buttonChoser('Button2') 
}; 
관련 문제