Our Person 2 example written with cfscript.
<cfscript> forename = "Jane"; surname = "Smith"; dob = CreateDate( 1970, 6, 25 ); Person = CreateObject( "component", "Person" ).init( forename, surname, dob ); WriteOutput( "<p>" ); WriteOutput( "Name: " & Person.getFullName() & "<br />" ); WriteOutput( "Age: " & Person.getAgeInYears() & "<br />" ); WriteOutput( "</p>" ); WriteOutput( "<p><strong>Jane gets married to Mr Jones</strong></p>" ); Person.setLastName( "Jones" ); WriteOutput( "<p>" ); WriteOutput( "Name: " & Person.getFullName() & "<br />" ); WriteOutput( "Age: " & Person.getAgeInYears() & "<br />" ); WriteOutput( "</p>" ); </cfscript>
<cfscript>
/*
Note: all functions are public and we can't specify argument or return types.
*/
function init( firstname, lastname, dateOfBirth ) {
variables.instance = StructNew();
setFirstname( arguments.firstname );
setLastname( arguments.lastname );
setDateOfBirth( arguments.dateOfBirth );
return this;
}
function getFirstname() {
return variables.instance.firstname;
}
function setFirstname( firstname ) {
variables.instance.firstname = arguments.firstname;
}
function getLastname() {
return variables.instance.lastname;
}
function setLastname( lastname ) {
variables.instance.lastname = arguments.lastname;
}
function getDateOfBirth() {
return variables.instance.dateOfBirth;
}
function setDateOfBirth ( dateOfBirth ) {
variables.instance.dateOfBirth = arguments.dateOfBirth;
}
function getAgeInYears() {
return DateDiff( "yyyy", variables.instance.dateOfBirth, Now() );
}
function getFullname() {
return getFirstname() & " " & getLastname();
}
</cfscript>