News for hackers. Stuff that matters.
Re:Replacing ‘that = this’ assignments in JavaScript with Ar... by gerso on Friday April 14, 2017 @02:34PM (#14116194)
In reference to constructor invocation:

  ...a new empty object is created, (let’s name it newObj) and the function is invoked on that object,
  like say, newObj.Person() in this case.
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:

  (new Function).Function
  => undefined
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...