Object attribute exists but returns undefined?
<p>I have a custom class/object in a script. In one of the object methods, when I run the following commands:</p>

<pre><code>MapLabel.prototype.show = function()
{
    console.log(this);         // Here are the
    console.log(this.canvas);  // lines in question

    if (!this.canvas) // this is not giving the expected result
    {
        console.log('canvas doesnt exist to show');
        return;
    }

    console.log('showing maplabel');
    this.visible = true;

    this.canvas.style['visibility'] = 'visible';
    this.marker.setVisible(true);
}
</code></pre>

<p>I get the following:</p>

<pre><code>MapLabel {gm_accessors_: Object, fontFamily: "'Droid Sans', 'Helvetica Neue', 
Helvetica, Arial, sans-serif", gm_bindings_: Object, fontSize: 14, fontColor: "#FFFFFF"…}
__e3_: Object
align: "center"
canvas: &lt;canvas&gt;
fontColor: "#FFFFFF"
fontFamily: "'Droid Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif"
fontSize: 14
gm_accessors_: Object
gm_bindings_: Object
gm_props_: Hu
id: 216
map: xh
marker: Ah
markerImage: Qh.MarkerImage
minZoom: 5
position: Q
strokeColor: "#000000"
strokeWeight: 4
text: "Sometext"
visible: false
zIndex: 100
__proto__: Dh

undefined    // &lt;---- this.canvas = undefined even though it exists?
</code></pre>

<p>You can see in the output that <code>this.canvas</code> exists and has a value. But when <code>console.log(this.canvas)</code> is run immediately afterwords, it returns <code>undefined</code>.</p>

<p>Is there something I'm missing here?</p>

<p><strong>Updated: I added the function that the code is being called in</strong></p>
