这两个陈述是相同的,我想做一个与它们相同的陈述。
换句话说,我想将这些代码的快捷方式作为一个函数。
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();
}
}
}
答案 0 :(得分: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");
这是解决方案,不仅将joinig两个函数合二为一,而且在一个函数中查看多少次访问dom元素如document.getElementById()
,它会导致性能下降。
将引用存储在变量中并重用它。像
var btn = document.getElementById(id)
答案 1 :(得分:2)
function chose( id ) { }
然后使用id
代替“Button1”或“Button2”;你问过之前有搜索过吗?...
答案 2 :(得分: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();
}
}
}
答案 3 :(得分: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')
};