javascript - 在对象中使用方法不会给我值
问题描述
我正在尝试做一个简单的练习,不切实际,从账单中计算税款并将它们与另一个包含总值的数组一起存储在数组中。
我真的不知道为什么这种方法行不通。值得注意的是,我可以使函数在对象之外工作(并解决我的问题),但无论我何时在此实例或任何其他实例中使用方法,它们都不会在对象内部工作。通常,我希望有一个数组'tax'和数组'finalValues'。没有什么给我错误,但也不会运行它。
所以我把它贴在这里找出原因,因为它真的让我发疯:D
ps:我使用 mdn、w3school 获取资源,但也使用 udemy。我正在使用视觉代码工作室来写任何东西(但也尝试了这个括号)。我用mozilla和chrome测试了一下,也用了code pen。
var stavros = {
fullName: 'Stavros Vas',
bills: [124, 48, 268, 180, 42],
calcTips: function() {
this.tax = [];
this.finalValues = [];
for (var i = 0; i < this.bills.length; i++) {
var percentage;
var bill = this.bills[i];
if (bill < 50) {
percentage = 0.1;
} else if (bill >= 50 && bill < 200) {
percentage = 0.15;
} else {
percentage = 0.2;
}
this.tax[i] = bill * percentage;
this.finalValues[i] = bill + bill * percentage;
}
}
};
console.log(stavros);
谢谢!
解决方案
您的代码正在运行,只需执行它stavros.calcTips()
var stavros = {
fullName: 'Stavros Vas',
bills: [124, 48, 268, 180, 42],
calcTips: function() {
this.tax = [];
this.finalValues = [];
for (var i = 0; i < this.bills.length; i++) {
var bill = this.bills[i];
if (bill < 50) {
percentage = 0.1;
} else if (bill >= 50 && bill < 200) {
percentage = 0.15;
} else {
percentage = 0.2;
}
this.tax[i] = bill * percentage;
this.finalValues[i] = bill + bill * percentage;
}
}
};
stavros.calcTips(); // added
console.log(stavros);
推荐阅读
- apache-spark - AvroIO 无法通过 java.lang.ClassCastException 读取逻辑类型日期
- javascript - 如何将 JavaScript 中的两个变量合二为一?
- javascript - React/Redux 控制功能组件何时呈现
- oracle - 如何将 pl/sql 循环给出的数值加起来为一个值?
- maven - 如何缩小战争规模
- php - 在链接中插入变量
- sql-server - 从带有过滤器的 SQL 表中检索数据到 Excel
- r - '[<-.data.frame 'C' *temp*',... 替换中的 R 错误有 # 个项目,需要 # 个
- python - 如何在 Python 中获取对象属性以动态更新
- javascript - 更好的解决方案或更换window.unload