Side navigation
#12605 closed bug (notabug)
Opened September 25, 2012 03:39PM UTC
Closed September 25, 2012 04:58PM UTC
html() causes an error with the string object
Reported by: | Quozzo | Owned by: | |
---|---|---|---|
Priority: | undecided | Milestone: | None |
Component: | unfiled | Version: | 1.8.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
When returning the string object through a constructor it causes an error when that string object is used within html(), but not text().
Attachments (0)
Change History (3)
Changed September 25, 2012 03:49PM UTC by comment:1
resolution: | → wontfix |
---|---|
status: | new → closed |
Changed September 25, 2012 04:58PM UTC by comment:2
resolution: | wontfix |
---|---|
status: | closed → reopened |
Actually, in this case it's not the modification of the prototype, which is pretty common and does work. The problem is that the method returns this
which is not the same as the original string. JavaScript always converts primitive types to objects for the this
, so it is converting the primitive Strings into String objects. If you return this.toString()
it works fine.
http://jsfiddle.net/dmethvin/NNKUN/1/
The documentation is pretty clear that we want strings, not string *objects* which are a totally different thing. String objects may work in some APIs but it's largely by luck and not design.
Changed September 25, 2012 04:58PM UTC by comment:3
resolution: | → notabug |
---|---|
status: | reopened → closed |
jQuery cannot protect you from the effects of modifying the prototypes of built-in objects