首页 > 解决方案 > 在对象中使用方法不会给我值

问题描述

我正在尝试做一个简单的练习,不切实际,从账单中计算税款并将它们与另一个包含总值的数组一起存储在数组中。

我真的不知道为什么这种方法行不通。值得注意的是,我可以使函数在对象之外工作(并解决我的问题),但无论我何时在此实例或任何其他实例中使用方法,它们都不会在对象内部工作。通常,我希望有一个数组'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);

谢谢!

标签: javascriptmethods

解决方案


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


推荐阅读