call 语句:
function_name.call(this_context, function_arguments_array)
使用this_context作为函数内部的this 变量调用function_name, 同时传入参数function_arguments_array
apply 语句:
function_name.apply(this_context, function_arguments_1, function_arguments_2…….)
使用this_context作为函数内部的this 变量调用function_name, 同时传入参数function_arguments_1,
function_arguments_2, …….
两个语句的区别就在于call是使用一个数组代表参数, 而apply是将所有参数列出, 功能上没有区别。
函数还有两个变量, 仅在运行的时候存在, 一个是caller, 表示的是调用此函数的函数, 如果此函数是由浏览器
调用的(是顶层函数), 则caller 是null
使用caller :
function function_name() { alert( function_name.caller ); } |
另一个变量是callee, 可以获取当前函数, 使用方法:
function function_name() { alert( arguments.callee ); } |