does javascript functions are shared across all objects? -



does javascript functions are shared across all objects? -

so code

ob1 = { m: function(){ alert(this); } } ob2.m = ob1.m;

and because think functions stored 1 time in memory in case

yes, code, both ob1 , ob2 have reference same function m. if phone call ob1.m(), phone call m this referring ob1. if phone call obj2.m(), phone call m this referring ob2. there one re-create of function, , have multiple references function. in javascript, functions real objects, other object. (this not true of many other programming languages.)

you can this:

function m() { } var ob1 = {m: m}; var ob2 = {m: m};

again share function.

or this:

function myobject() { } myobject.prototype.m = function() { }; var ob1 = new myobject(); var ob2 = new myobject();

again share function, because both receive myobject.prototype underlying prototype when they're created via new myobject, , prototype has reference function.

similarly (in es5-enabled environment):

var myproto = { m: function() { } }; var ob1 = object.create(myproto); var ob2 = object.create(myproto);

the object 1 time again end sharing prototype, , prototype has m function.

javascript function

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -