下面是我的更长版本的代码,我需要一个更短的方法。我想创建一个函数来创建 ap 元素并附加它,但我面临的问题是变量范围。请帮忙!!!下面的代码运行良好,但版本较长。
const input = document.querySelector('.input-num');
function squared(num){
const para = document.createElement('p');
document.body.appendChild(para);
para.textContent = "square of " + num + " is " + num * num;
}
function cubed(num){
const para = document.createElement('p');
document.body.appendChild(para);
para.textContent = "cube of " + num + " is " + num * num * num;
}
function areaOfCircle(num){
const para = document.createElement('p');
document.body.appendChild(para);
para.textContent = "Area of circle with radius as " + num + " is " + Math.PI * num * num;
}
function circumferenceOfCircle(num){
const para = document.createElement('p');
document.body.appendChild(para);
para.textContent = "Circumference of circle with radius as " + num + " is " + 2 * Math.PI * num;
}
function factorial(num){
if(num < 0) return undefined;
if(num == 0) return 1;
let initialNum = num;
let x = num -1;
while(x > 1){
num *= x;
x--;
}
const para = document.createElement('p');
document.body.appendChild(para);
para.textContent = "factorial of " + initialNum + " is " + num;
}
input.onchange = function(){
const num = parseFloat(input.value);
if(isNaN(num)){
const para = document.createElement('p');
document.body.appendChild(para);
para.textContent = 'You need to enter a number';
} else{
squared(num);
cubed(num);
areaOfCircle(num);
circumferenceOfCircle(num);
factorial(num);
}
}
创建一个执行重复位的函数`
function dry(text) {
const para = document.createElement('p');
document.body.appendChild(para);
para.textContent = text;
}
现在你可以简单地做
function squared(num) {
dry("square of " + num + " is " + num * num);
}
ps 函数名dry
无所谓,我用的是dry,因为它代表不要重复自己
另外:这是“较短”但可读性较差
function dry(text) {
document.body.appendChild(document.createElement('p')).textContent = text;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句