I Have No Idea Object(this) Means
Solution 1:
As suggested in the comments on the code, this section is to accurately pollyfill the first steps documented in the spec.
- Let O be ToObject(this value).
- ReturnIfAbrupt(O).
Though a bit out-of-order, this is performing the fucntion of ToObject(this value)
:
var O = Object(this);
Basically, if it is called on a non-object, the non-object should be cast to an Object
.
For example, if we were to run this bit of mostly-nonsensical code in a JavaScript engine which natively supports this method, we would see a Number
object instance gets returned.
Array.prototype.fill.call(123);
That line would ensure the same result from the polyfill.
Solution 2:
The Object constructor returns its argument when the argument is already an object. If it's not an object, it returns the "objectified" version of the argument: a String instance if it's a string, a Number instance if it's a number, etc.
The function in question is a little weird, and in particular the value of this
will usually be an object anyway. It doesn't have to be, but you kind-of have to go out of your way to get to the innards of the polyfill with a this
value that isn't an object.
Post a Comment for "I Have No Idea Object(this) Means"