Возможно ли иметь переменные, зависящие от функции, которые можно просматривать, расширяя компоненты? - PullRequest
2 голосов
/ 18 июня 2010

В Adobe Flex можно объявить открытую функцию, которая может быть переопределена в классе, расширяющем класс этой функции:

public class class1 {
    public function method1 {
        public var var1:string = "hello world";
    }
}

public class class2 extends class1 {
    override public function method1 {
        alert.show(super.var1 + "!");
    }
}

Посмотрите, как этот открытый доступ может быть доступен расширяющим классом.?

Мне интересно, возможно ли такое в ColdFusion.Я знаю, что специфичные для компонента переменные хранятся в области «this» и «Variables», а область «var» является частной по отношению к методу, в котором она объявлена, но есть ли что-то между ними?

ps извините за самые расплывчатые метки на этом ....

1 Ответ

3 голосов
/ 18 июня 2010

Я вижу, что вы пытаетесь сделать, но ответ - нет, это просто невозможно сделать в ColdFusion.Это не то, как наследование работает в CF.

Однако у вас есть доступ для запуска версии функции родительского класса;и вы можете использовать глобальную область компонента, например, Переменные (или область сеанса пользователя и т. д.)

<cfcomponent displayName="parent">
    <cffunction name="foo">
        <cfset variables.foo = 1 />
    </cffunction>
</cfcomponent>

<cfcomponent displayName="child" extends="parent">
    <cffunction name="foo">
        <cfset super.foo() />
        <cfdump var="#variables#" />
    </cffunction>
</cfcomponent>
...