我想编写一个例程,只要它被调用,就会将函数的名称附加到#trace:
;(function($, window, undefined) {
var dom = {};
var myObject = {};
myObject.myFunction = {
trace('myObject.myFunction');
// function logic goes here
}
dom.trace = $('#trace');
var trace = function(value) {
dom.trace.append(value + '<br>'));
}
$(document).on('click','#Save',myObject.myFunction)
})(jQuery, window);
在这个我被抛在一起的小概念证明中,我知道我可能做错了12件事。
但这是我的问题所在:
问:你如何命名一个函数以便可以反省它?
答案 0 :(得分:0)
来自http://www.learnjquery.org/tutorials/:
function show_props(a,b,c,d,e)
{
var msg = "function name = " + arguments.callee.name + "\n";
msg += "called from = " + show_props.caller.name + "\n";
msg += "arguments.length = " + arguments.length + " argument(s) were passed.\n"
msg += "show_props.length (arity) = " + show_props.length + " argument(s) are defined total.\n";
msg += "arguments = " + arguments + "\n";
for (var i = 0; i < arguments.length; i++)
msg += "arguments[" + i + "] = " + arguments[i] + "\n";
msg += "And arguments.callee.toString() is the function's literal body in string format = \n" + arguments.callee.toString() + "\n";
alert(msg);
}
function parent()
{
show_props(1,2,3);
}
parent();
The result is shown below:
function name = show_props
called from = parent
arguments.length = 3 argument(s) were passed.
show_props.length (arity) = 5 argument(s) are defined total.
arguments = [object Arguments]
arguments[0] = 1
arguments[1] = 2
arguments[2] = 3
And arguments.callee.toString() is the function's literal body in string format =
function show_props(a,b,c,d,e)
{
var msg = "function name = " + arguments.callee.name + "\n";
msg += "called from = " + show_props.caller.name + "\n";
msg += "arguments.length = " + arguments.length + " argument(s) were passed.\n"
msg += "show_props.length (arity) = " + show_props.length + " argument(s) are defined total.\n";
msg += "arguments = " + arguments + "\n";
for (var i = 0; i < arguments.length; i++)
msg += "arguments[" + i + "] = " + arguments[i] + "\n";
msg += "And arguments.callee.toString() is the function's literal body in string format = \n" + arguments.callee.toString() + "\n";
alert("msg");