javascript - Why can a constructor only return an object? -


if there constructor like

function a() {} 

then

(new a) instanceof === true 

but on other hand,

function a() { return {} } 

results in

(new a) instanceof === false 

so thinking that

function a() { return 123 } 

would result in same thing. however, when returning number,

(new a) instanceof === true 

how possible? why can't make constructor return else object?

(i know making constructor returning number rather useless understand 'why' of behaviour)

according spec: if calling constructor returns object, object result of new-expression. if constructor doesn't return object (but undefined or other primitive value), result newly created object.

if primitives allowed, constructors have explicitly return (typically "this"), otherwise result undefined (because result of function without return undefined). needless hassle.

additionally, makes sense new can relied on return object.


Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -