Re:Replacing ‘that = this’ assignments in JavaScript with Ar...
by gerso on Friday April 14, 2017 @02:34PM
(#14116194)
In reference to constructor invocation:
Is this true? When a function is invoked with "new", "this" is set to the object being constructed, but is that accomplished by making the constructor a method of the object being initialized? If so, it must be removed later on in the process:
[ Parent
| on HN ]
Re:Replacing ‘that = this’ assignments in JavaScript with Ar...
by laughinghan on Friday April 14, 2017 @02:46PM
(#14116280)
It is not true. It's just a confusing attempt by the article to explain what happens to `this` inside Person().
If anything, it's more like:
var newObj = Object.create(Person.prototype)
var result = Person.call(newObj)
if (typeof result === 'object' && result !== null) return result
return newObj
The article didn't explain it like that because that requires introducing the concept of .call() on functions.
Re:Replacing ‘that = this’ assignments in JavaScript with Ar...
by hdhzy on Friday April 14, 2017 @02:43PM
(#14116260)
The algorithm for "var p = new Person" is roughly (ignoring prototypes):
var p = {};
Person.call(p); // calls Person with p as this
Remember that in js there are no "methods" just functions. The original constructor function can be accessed by "constructor" property: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...