如何重载cfscript中的init()函数

时间:2019-02-01 18:56:19

标签: coldfusion coldfusion-10

这个例子是我试图做的,但是ColdFusion说`例程只能被声明一次。 ColdFusion可以做这样的事情吗?

/**
* @hint Handles vehicles 
*/
component Vehicle
{

    this.stock = "";
    this.year = "";
    this.make = "";
    this.model = "";

    public Vehicle function init()
    {
        return this;
    }

    public Vehicle function init(string stock)
    {
        this.stock = stock;
        //Get the year, make model of the stock number of this vehicle
        return this;
    }

    public string function getYearMakeModel() 
    {
        var yearMakeModel = this.year & " " & this.make & this.model;
        return yearMakeModel;
    }

}

奇怪的是,如果我取出第一个init(),我可以使用new Vehicle()new Vehicle(stocknumber)并以任何一种方式调用init(string stocknumber),但这不是我的行为想要...

1 个答案:

答案 0 :(得分:3)

通过ColdFusion无法使用例程重载。但是单个函数可以与不同的参数集(set)一起使用。这开辟了许多方法,您可以使用同一功能来满足不同目的。

例如,下面的函数应同时满足您试图实现的两个构造函数的作用。

required=false