caller和callee的使用方法
什么是caller:
先看官方定义的概念:Function对象的caller属性是对调用当前函数的函数的引用。如果该函数是从JavaScript程序的顶层调用的,caller的值就为null
看个例子:
function callerDemo() {
if (callerDemo.caller == null) {
return "在顶层执行";
}
else
{
return "被函数使用";
}
}
function handleCaller(){
alert(callerDemo());
}
caller有啥用:判断是否在顶层使用,也可以像抽象类一样,要求该函数必须在函数内执行
什么是callee;
概念:属性arguments.callee引用当前正在运行的函数。它给未命名的函数提供了一种自我引用的方式。该属性只在函数体内被定义。
看个例子:
var factorial = function(x) {
if (x < 2) return 1;
else return x * arguments.callee(x-1);
}
var y = factorial(5);// 返回 120 5*4*3*2*1=120
callee有啥用:匿名函数的递归
caller和callee的使用方法相关推荐
- call、aplly、caller、callee分别是什么?
call和aplly的区别: 概念: call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.因为 JavaScr ...
- javascript 中 caller 与 callee 的作用以及用法
这两个关键字在平时编码中几乎难以用到,但它们既然存在于javascript语言体系中,那么还是有必要了解下. caller 是 javascript 函数类型的一个属性,它引用调用当前函数的函数 fu ...
- JavaScript基础之 caller和callee
后面继续聊数组相关的一些事情的时候,会出现这两个属性,放在篇幅里面解释,感觉会前后不连贯,所以单独就弄出来作为一篇.本篇很短就是简单的解释其作用,所以想要深入了解的可以跳过本篇了. caller:所有 ...
- js apply/call/caller/callee/bind使用方法与区别分析
一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). Js代码 call([thisObj[,arg1[, arg2[, ...
- java caller_js中的caller和callee属性
caller 返回一个对函数的引用,该函数调用了当前函数. functionName.caller functionName 对象是所执行函数的名称. 如果一个函数f是在全局作用域内被调用的,则f.c ...
- Js中caller和callee的区别
1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回null (举个栗子哈 caller给你打电话的人 谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时 ...
- JavaScript 之arguments、caller 和 callee 介绍
1.前言 arguments, caller , callee 是什么? 在javascript 中有什么样的作用?本篇会对于此做一些基本介绍. 2. arguments arguments: ...
- javascript中caller与callee的作用以及用法
这两个关键字在平时编码中几乎难以用到,但它们既然存在于javascript语言体系中,那么还是有必要了解下. caller是javascript函数类型的一个属性,它引用调用当前函数的函数 funct ...
- call与caller与callee的区别
call() 语法 函数名.call(修改this的指向,arg1,arg2...) function fn(a, b) {console.log(this);console.log(a + b);} ...
最新文章
- css炫酷标题,纯css3鼠标滑过图片炫酷标题显示特效
- Android从放弃到精通 第二天 我还好
- C# 跨线程调用控件
- Java中的Fork / Join框架的简要概述
- 第二季2:/package/mpp/sample的总体分析
- 测试:fiddler使用
- 【操作系统】输入输出系统(上)-思维导图
- 基于Java的敬老院管理系统
- error: could not lock config file .git/config: Permission denied/Command failed with exit 255
- ffmpeg教程 如何输出任务日志?用于进度条显示
- 事件驱动架构在 vivo 内容平台的实践
- javaweb基于SSM酒店入住管理系统设计与实现(含毕业论文、程序设计及数据库文件)
- 动态网站开发技术学习2:VS 2010制作作第一个简单示例网站
- 机器人摘果子看图写话_作文:摘苹果(看图写话)
- Python技术pip的使用命令总结
- FZU 1968 Twinkling lights III
- 简单的邮箱格式校验方式
- centOs7 安装docker 镜像
- VUE H5页面微信/QQ/微博 分享连接设置
- 【简易版】知网下载PDF硕博论文