By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,605 Members | 2,153 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,605 IT Pros & Developers. It's quick & easy.

Function.call and Function.apply

P: n/a
I would like to check if my understanding of the two functions are
correct.

Is this correct? The following three lines are equivalent, for
example, [1] can be replaced with [2] or [3] anywhere in a script
without changing the return value and without changing any side effect.
[1] var r = o.f(a,b);
[2] var r = o.f.call(o,a,b);
[3] var r = o.f.apply(o,[a,b]);

( o is an object and o.f is a function. )

The following three lines are equivalent:
[1'] var r = g(a,b);
[2'] var r = g.call(this,a,b);
[3'] var r = g.apply(this,[a,b]);

( g is a function, for example,
var g = function(a,b){return [this,a,b];}. )

Aug 25 '06 #1
Share this Question
Share on Google+
1 Reply


P: n/a
"HopfZ" <ho******@gmail.comwrites:
Is this correct? The following three lines are equivalent
....
[1] var r = o.f(a,b);
[2] var r = o.f.call(o,a,b);
[3] var r = o.f.apply(o,[a,b]);
Correct

The following three lines are equivalent:
[1'] var r = g(a,b);
[2'] var r = g.call(this,a,b);
[3'] var r = g.apply(this,[a,b]);
Only if used where "this" refers to the global object (i.e., the call
is in the global scope or inside a function called in this way).

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Aug 25 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.