Hi Andrew,
Nope properties go by default to the private variables scope.
The this scope is for public variables.
You can test this by initializing properties in the init function (which is by the way a work around for this problem; so not to rely on default values of properties)
The bug is that properties with a default value are not being populated into the variables struct.
You can initialize using one of three methods in the init function:
variables.privateVarOne = “privateVarOne initial variables struct”;
privateVarOne = “privateVarOne initial default variables struct”;
setPrivateVarOne(“privateVarOne initial setter”);
All three methods will set variables struct.
Here is a test you can use:
component accessors=“true” {
property name=“privateVarOne” type=“string” default=“privateVarOne default” setter=“true”;
property name=“privateVarTwo” type=“string” default=“privateVarTwo default”;
function init() {
var filePath = “e:\www\development\test.html”;
if(fileExists(filePath)) {
fileDelete(filePath);
}
writeDump(var=“dumping this with only default values”, output=filePath, format=“html”);
writeDump(var=this, output=filePath, format=“html”);
writeDump(var=“dumping variables with only default values”, output=filePath, format=“html”);
writeDump(var=variables, output=filePath, format=“html”);
this.onePublicVariable = “onePublicVariable initial”;
/*
writeDump(var=“setting privates using variables struct”, output=filePath, format=“html”);
variables.privateVarOne = “privateVarOne initial variables struct”;
variables.privateVarTwo = “privateVarTwo initial variables struct”;
/
/
writeDump(var=“setting privates using default struct”, output=filePath, format=“html”);
privateVarOne = “privateVarOne initial default struct”;
privateVarTwo = “privateVarTwo initial default struct”;
*/
writeDump(var=“setting privates using setters”, output=filePath, format=“html”);
setPrivateVarOne(“privateVarOne initial setter”);
setPrivateVarTwo(“privateVarTwo initial setter”);
writeDump(var=“dumping this with initial values”, output=filePath, format=“html”);
writeDump(var=this, output=filePath, format=“html”);
writeDump(var=“dumping variables with initial values”, output=filePath, format=“html”);
writeDump(var=variables, output=filePath, format=“html”);
return this;
}
public void function newMethod() {
var myVar = variables.privateVarOne;
}
public struct function getVariables() {
return variables;
}
}
Cheers,
Tom