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

javascript - Iterate over array and calculate average values of array-parts -

iphone - Using nested NSDictionary with Picker -

objective c - Newbie question -multiple parameters -