使用闭包计算数学运算...?
问题描述:
它没有显示结果通过用户选择,请给我帮助使用闭包计算数学运算...?
它在结果框是显示它转换为整数后也为NaN的使用闭合功能
一个计算器运算。
Mathamatical.js //关闭内容
var pradeep=(function(){
result = 0; sum_is=sub_is=mul_is=divn_is=0;
function manupulation(x,y){
sum_is = getsumValues(x,y);
sub_is = getsubValues(x,y);
mul_is = getmulValues(x,y);
divn_is = getdivnValues(x,y);
return result[sum_is,sub_is,mul_is,divn_is];
}
function getsumValues(x,y){
var sum_is = x+y;
return result[0];
}
function getsubValues(x,y){
var sub_is = x-y;
return sub_is;
}
function getmulValues(x,y){
var mul_is = x*y;
return mul_is;
}
function getdivnValues(x,y){
var divn_is = x/y;
return divn_is;
}return{
manupulation_value : function(x,y){
return manupulation(x,y);
}
}
})();
我的第二个js文件
function calculate_operations(){
var details = {}
details.Firstvalue = document.querySelector("#fnumber").value;
details.SecondValue = document.querySelector("#snumber").value;
details.Firstvalue = parseInt(details.Firstvalue);
details.SecondValue = parseInt(details.SecondValue);
details.result = 0;
//details.selectedOperation = document.querySelector("operation")
details.showdetails = function(){
console.log(pradeep);
document.querySelector("#numberF").innerText = details.Firstvalue;
document.querySelector("#numberS").innerText = details.SecondValue;
function operationsMathematical(){
if (document.querySelector("#operation".value == "")) {
document.querySelector("#sel_operation").innerText = +"No operation selected";
}
if (document.querySelector("#operation").value== "add") {
document.querySelector("#sel_operation").innerHTML =+details.Firstvalue +"+" +details.SecondValue ;
details.result= pradeep.manupulation_value(details.Firstvalue,details.SecondValue);
//console.log(details.Firstvalue,details.SecondValue);
details.result=parseInt(pradeep.manupulation_value(result[0]));
document.querySelector("#result_block").innerHTML = +details.result;
}
if (document.querySelector("#operation").value== "sub") {
document.querySelector("#sel_operation").innerText =+details.Firstvalue +"-" +details.SecondValue;
details.result=pradeep.manupulation_value(result[1]);
document.querySelector("#result_block").innerHTML = +details.result;
}
if (document.querySelector("#operation").value== "mul") {
document.querySelector("#sel_operation").innerText =+details.Firstvalue +"*" +details.SecondValue;
details.result= pradeep.manupulation_value(details.Firstvalue,details.SecondValue);
details.result=parseInt(pradeep.manupulation_value(result[sum_is]));
document.querySelector("#result_block").innerHTML = +details.result;
}
if (document.querySelector("#operation").value== "divn") {
document.querySelector("#sel_operation").innerText =+details.Firstvalue +"/" +details.SecondValue;
}
}
operationsMathematical();
}
//details.result= pradeep.manupulation_value(details.Firstvalue,details.SecondValue);
document.querySelector("#showvalues").style.display="block";
details.showdetails();
}
答
改变的文件。这应该工作
var pradeep=(function(){
// No need of these variables result = 0; sum_is=sub_is=mul_is=divn_is=0;
function manupulation(x,y){
var sum_is = getsumValues(x,y); //use var otherwise global scope is used
var sub_is = getsubValues(x,y);
var mul_is = getmulValues(x,y);
var divn_is = getdivnValues(x,y);
return [sum_is,sub_is,mul_is,divn_is];
}
function getsumValues(x,y){
var sum_is = x+y;
return sum_is;
}
function getsubValues(x,y){
var sub_is = x-y;
return sub_is;
}
function getmulValues(x,y){
var mul_is = x*y;
return mul_is;
}
function getdivnValues(x,y){
var divn_is = x/y;
return divn_is;
}
return{
manupulation_value : function(x,y){
return manupulation(x,y);
}
}
})();
您的第二个文件有错误。
function calculate_operations(){
var details = {}
details.Firstvalue = document.querySelector("#fnumber").value;
details.SecondValue = document.querySelector("#snumber").value;
details.Firstvalue = parseInt(details.Firstvalue);
details.SecondValue = parseInt(details.SecondValue);
details.result = 0;
//details.selectedOperation = document.querySelector("operation")
details.showdetails = function(){
console.log(pradeep);
document.querySelector("#numberF").innerText = details.Firstvalue;
document.querySelector("#numberS").innerText = details.SecondValue;
function operationsMathematical(){
if (document.querySelector("#operation".value == "")) {
document.querySelector("#sel_operation").innerText = +"No operation selected";
}
if (document.querySelector("#operation").value== "add") {
document.querySelector("#sel_operation").innerHTML =+details.Firstvalue +"+" +details.SecondValue ;
details.result= pradeep.manupulation_value(details.Firstvalue,details.SecondValue);
//console.log(details.Firstvalue,details.SecondValue);
details.result=parseInt(pradeep.manupulation_value(result[0]));
document.querySelector("#result_block").innerHTML = +details.result;
}
if (document.querySelector("#operation").value== "sub") {
document.querySelector("#sel_operation").innerText =+details.Firstvalue +"-" +details.SecondValue;
details.result=pradeep.manupulation_value(result[1]);
document.querySelector("#result_block").innerHTML = +details.result;
}
if (document.querySelector("#operation").value== "mul") {
document.querySelector("#sel_operation").innerText =+details.Firstvalue +"*" +details.SecondValue;
details.result= pradeep.manupulation_value(details.Firstvalue,details.SecondValue);
details.result=parseInt(pradeep.manupulation_value(result[2]));
document.querySelector("#result_block").innerHTML = +details.result;
}
if (document.querySelector("#operation").value== "divn") {
document.querySelector("#sel_operation").innerText =+details.Firstvalue +"/" +details.SecondValue;
details.result=pradeep.manupulation_value(result[3]);
document.querySelector("#result_block").innerHTML = +details.result;
}
}
operationsMathematical();
}
//details.result= pradeep.manupulation_value(details.Firstvalue,details.SecondValue);
document.querySelector("#showvalues").style.display="block";
details.showdetails();
}
+0
即使它不工作。显示sum_is未定义的错误 –
你认为'返回结果[sum_is,sub_is,mul_is,divn_is];'确实'result'是'0'吗?它*实际*做的是返回'undefined';你可能的意思是返回[sum_is,sub_is,mul_is,divn_is];'返回一个包含结果的数组。你的'getSumValues()'函数有一个类似的问题。 (所以问题不在关闭......) – nnnnnn
在'getsumValues'中,即使'result = 0'(它是一个数字,而不是一个数组),你正在返回'result [0]' –
谢谢..即使虽然它显示sum_is在返回数据时未定义的错误。 –