【原】javascript 的 call, apply 语句和函数的 caller, callee 属性

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 );
}
此条目发表在 HTML/Javascript/CSS 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>