Nick Morgan: > Now, if you do this instead: > > Ctor.prototype = null; > > var y = new Ctor; > > y.toString; > => function ... > > Here's a fiddle that illustrates the above: > http://jsfiddle.net/skilldrick/gabEN/ > > So, how is `toString` looked up on `y`? Is there a special case when the > constructor's prototype property is null, or am I misunderstanding > something?
You should look at 13.2.2 [[Construct]]. 1. Let obj be a newly created native ECMAScript object. .... 4. Let proto be the value of calling the [[Get]] internal property of F with argument "prototype". 5. If Type(proto) is Object, set the [[Prototype]] internal property of obj to proto. 6. If Type(proto) is not Object, set the [[Prototype]] internal property of obj to the standard built-in Object prototype object as described in 15.2.4. So when you do: new Ctor; According step 6 you will get object which prototype chain should look as: instance obj -> Object.prototype -> null -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/[email protected]/ To search via a non-Google archive, visit here: http://www.mail-archive.com/[email protected]/ To unsubscribe from this group, send email to [email protected]
