views:

286

answers:

2

I'm trying to adjust a jquery script to my needs and encountered the following lines-

 arguments.callee.eabad1be5eed94cb0232f71c2e5ce5 = function() {
            _c3();
            _c4();
            return;
        };

what is it?

+1  A: 

Arguments is an object that holds callee that holds the variable eabad1be5eed94cb0232f71c2e5ce5 which is being turned into a function or method by the function() { _c3(); _c4(); return; };

from what I see...

AjayP
but `arguments` is not just *any object*
Alexandre Jasmin
+2  A: 

arguments.callee refers to the function begin called. So your code assign a function to the eabad1be5eed94cb0232f71c2e5ce5 property of the function you're in.

To demonstrate this. Here's a snippet of code in which a function g() is assigned to a property of another function f() using argument.callee:

function f() {
    arguments.callee.g = function() {alert("Hello, World!")};
}

f();
f.g();  // Alerts "Hello, World!"

I'm not exactly sure what the code you posted is suppose to do.

argument.callee is often used inside anonymous functions to refer to themselves. Though I believe it can't be used in ECMAScript 5 strict mode.

Alexandre Jasmin
thank you!!!!!!
Gidon