Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript对象属性显示问题_Javascript - Fatal编程技术网

JavaScript对象属性显示问题

JavaScript对象属性显示问题,javascript,Javascript,嗨,我在这里尝试建立一个基本的计算系统,当我进行计算时,例如,我在第一个提示符中输入1,1,然后在第二个提示符中输入add,该提示符通过我的开关调用things.add(1,1),它们在控制台中工作,但最终结果在打印我的文档中的计算结果时未按预期显示。写入 var nums = prompt("please enter the numbers you wish to calculate separated by a comma. eg 1,3").split(",").map(function(

嗨,我在这里尝试建立一个基本的计算系统,当我进行计算时,例如,我在第一个提示符中输入
1,1
,然后在第二个提示符中输入
add
,该提示符通过我的
开关调用
things.add(1,1)
,它们在控制台中工作,但最终结果在打印我的
文档中的计算结果时未按预期显示。写入

var nums = prompt("please enter the numbers you wish to calculate separated by a comma. eg 1,3").split(",").map(function(t){return parseFloat(t);});
var choice = prompt("what do you wish to do with the numbers: "+nums +" your choices are: add, subtract, multiply, divide").toLowerCase();

var things = {
total: 0,
getTotal: function getTotal() {
    return this.total;
},
add: function add(a, b) {
    this.total = parseFloat(a + b);
},
subtract: function add(a, b) {
    this.total = parseFloat(a - b);
    console.log(things.total);
},
multiply: function add(a, b) {
    this.total = parseFloat(a * b);
    console.log(things.total);
},
divide: function add(a, b) {
    this.total = parseFloat(a / b);
    console.log(things.total);
},
};
document.write("<h3>Calculations</h3><br>");
document.write("<p>you have elected to "+choice +" the numbers "+nums[0]+" and "+nums[1]+"</p>");
document.write("<p>the answer is: " + things.getTotal()+"</p>");
switch(choice) {
case 'add':
    things.add(nums[0],nums[1]);
    break;
case 'multiply':
    things.multiply(nums[0],nums[1]);
    break;
case 'subtract':
    things.subtract(nums[0],nums[1]);
    break;
case 'divide':
    things.divide(nums[0],nums[1]);
    break;
default:
    console.log("nothing entered!");
    break;
}
var nums=prompt(“请输入您希望计算的数字,以逗号分隔。例如1,3”).split(“,”).map(函数(t){return parseFloat(t);});
var choice=prompt(“您希望对数字做什么:“+nums+”您的选择是:加、减、乘、除”).toLowerCase();
变量事物={
总数:0,
getTotal:函数getTotal(){
返回这个.total;
},
添加:功能添加(a、b){
this.total=parseFloat(a+b);
},
减法:函数加法(a,b){
this.total=parseFloat(a-b);
console.log(things.total);
},
乘法:函数加法(a,b){
this.total=parseFloat(a*b);
console.log(things.total);
},
除法:函数加法(a,b){
this.total=parseFloat(a/b);
console.log(things.total);
},
};
文件。编写(“计算
”; 文件。写(“您已选择“+choice+”数字“+nums[0]+”和“+nums[1]+”

”); 写(“答案是:“+things.getTotal()+”

”; 开关(选择){ 案例“添加”: 添加(nums[0],nums[1]); 打破 “乘法”情况: 乘法(nums[0],nums[1]); 打破 “减法”格: 减法(nums[0],nums[1]); 打破 “除名”一案: 除法(nums[0],nums[1]); 打破 违约: log(“未输入任何内容!”); 打破 }

我不确定我是否在这里使用了所有正确的术语,因为我还在学习,但我希望如果我意外地将一个方法称为对象或其他任何情况,您可以看到这个问题,而不会挂断电话。非常感谢。

在计算实际发生之前,您正在输出
东西。getTotal()
。将switch语句移到三个
document.write()
语句上方,它应该可以工作。

在计算后打印值(
document.write(答案是:“+things.getTotal()+”

”;

啊,我现在觉得自己很傻。谢谢你,好先生。谢谢你的帖子,正如lex82所指出的,这确实是个问题。包括输入、预期输出和实际输出的例子会很有帮助。