Javascript方法CalculateCost()不为我返回任何值

Javascript方法CalculateCost()不为我返回任何值,javascript,methods,constructor,Javascript,Methods,Constructor,我有一个.js文件,其中包含一个名为graphitoorder()的类的构造函数。它有一个名为CalculateCost()的方法。出于某种原因,当我稍后调用CalculateCost()方法时,什么也没有发生 这是Order()和CalculateCost() 下面是我如何调用该方法的 var cost = CalculateCost().toFixed(2); document.write("Price of Order: " + cost + "<br/

我有一个.js文件,其中包含一个名为graphitoorder()的类的构造函数。它有一个名为CalculateCost()的方法。出于某种原因,当我稍后调用CalculateCost()方法时,什么也没有发生

  • 这是Order()和CalculateCost()

  • 下面是我如何调用该方法的

         var cost = CalculateCost().toFixed(2);
    
            document.write("Price of Order: " + cost + "<br/>");
    
    var-cost=CalculateCost().toFixed(2);
    文件。填写(“订单价格:+成本+”
    );

  • 你似乎有一个范围问题
    CalculateCost()
    是在
    Order()
    函数中声明的函数,因此在该函数之外无法访问该函数。尝试将CalculateCost()函数移到ClaritoOrder()之外,并将所需变量作为参数传递,如下所示:

    function PortraitOrder() {
      ....
    }
    
    function CalculateCost(price, copies) {
      ....
    }
    
    然后,您可以调用CalculateCost(),如下所示:

    如果确实希望CalculateCost()作为GraphicOrder()的一部分可用,可以通过在变量中保留对它的引用来实现

    更新:从下面的评论中,您说过希望创建一个包含成员变量和函数的对象。以下是一些有用的链接:


      • 这不是在javascript中定义方法的方式。您应该这样定义您的函数:

        function PortraitOrder (parameters) {
            //Constructor
        }
        
        PortraitOrder.prototype.calculateCost = function () {
            //Your cost function
        };
        
        此外,可以在此处找到Javascript中OOP的详细介绍:


        不幸的是,这是任务的一部分。我应该把它放在函数中。啊,你想把它设为一个成员函数。您在问题中没有指定这一点(或者至少从代码中看不明显)。您可以执行以下操作:order.prototype.calculateCost=function(){}好的。如果是这样,我的变量声明是否正确?是的。我正在用一些链接更新我的答案。它仍然没有显示任何东西。正如你所说,我把功能改成了原型
        CalculateCost(price, copies);
        
        function PortraitOrder (parameters) {
            //Constructor
        }
        
        PortraitOrder.prototype.calculateCost = function () {
            //Your cost function
        };