在对象中使用方法不会给我带来价值

时间:2018-11-07 12:28:13

标签: javascript methods

我试图做一个简单的,不现实的练习,该方法计算账单中的税款,并将其存储在与包含总值的另一个数组一起的数组中。

我真的不知道为什么这种方法行不通。值得注意的是,我可以使函数在对象之外工作(并解决我的问题),但是无论我在这种情况下还是在其他情况下使用方法,它们都不会在对象内部工作。通常,我希望有一个数组“ tax”和一个数组“ finalValues”。没有任何错误给我,但也不会运行。

所以我在这里张贴了它,以找出原因,因为它真的让我发疯:D

ps:我正在使用mdn,w3school获取资源,但也可以使用udemy。我正在使用Visual Code Studio编写任何内容(但也尝试使用此括号)。我使用mozilla和chrome对其进行了测试,还使用了代码笔。

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);

谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码正在运行,只需执行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);