>
> var x = T
> x.prototype.whatAmI()
> prints: {type: "[object Object]", isEqualToPrototype: true} <---- because
> 'this' in whatAmI now points to T.prototype
>
The thing is that you are not supposed to call methods on the prototype
directly.
Your code has this in it:
Object.prototype.toString.call(this)
which is something you usually do not do. The first argument to the .call
function becomes "this" in the context of the function which is "cheating" and
bypassing prototype inheritance. I consider .call equal to reflection in Java.
You should be doing this.toString().
I cannot explain prototype inheritance well enough and will probably only cause
more confusion at this point. [1] does a way better job than I ever could.
Cheers,
/thomas
[1]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain
--
Note that posts from new members are moderated - please be patient with your
first post.
---
You received this message because you are subscribed to the Google Groups
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.