You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flex.apache.org by "Alex Harui (JIRA)" <ji...@apache.org> on 2015/08/21 06:31:46 UTC
[jira] [Assigned] (FLEX-34913) Types passed by reference should not
be stored on the prototype because they are shared by all instances
[ https://issues.apache.org/jira/browse/FLEX-34913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Harui reassigned FLEX-34913:
---------------------------------
Assignee: Alex Harui
> Types passed by reference should not be stored on the prototype because they are shared by all instances
> --------------------------------------------------------------------------------------------------------
>
> Key: FLEX-34913
> URL: https://issues.apache.org/jira/browse/FLEX-34913
> Project: Apache Flex
> Issue Type: Bug
> Components: FalconJX
> Affects Versions: Apache FalconJX 0.0.3
> Reporter: Josh Tynjala
> Assignee: Alex Harui
>
> Try the following ActionScript:
> class Example
> {
> public var prop:Object = {};
> }
> var obj:Example = new Example();
> obj.prop.value = 5;
> var obj2:Example = new Example();
> trace(obj2.prop.value); //5
> The emitter puts the prop member on the prototype, so it is shared by all instances of Example:
> Example.prototype.prop = {};
> Instead, the emitter should set the property in Example's constructor so that each instance has a separate object. Maybe something like this:
> public function Example()
> {
> this.prop = {};
> super();
> }
> There is a workaround. A developer can manually set the property in the constructor, basically using the same code as above:
> class Example
> {
> public function Example()
> {
> this.prop = {};
> }
> public var prop:Object;
> }
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)