call与caller与callee的区别
call()
- 语法
函数名.call(修改this的指向,arg1,arg2...)
function fn(a, b) {console.log(this);console.log(a + b);}fn(1, 2);//this指向windowfn.call({ name: '张三' }, 10, 20);//修改后this指向这个对象
caller
获取调用这个函数的引用(我被谁调用了)
如果函数b中调用函数a 那么函数a的caller就是函数b
如果是全局调用(window调用) 那么函数的caller就是null
//caller 获取调用这个函数的引用(我被谁调用了)//如果函数b中调用函数a 那么函数a的caller就是函数b//如果是全局调用(window调用) 那么函数的caller就是nullfunction fn1() {console.log('哈哈');console.log(fn1.caller);//fn2}function fn2() {fn1();//fn1的caller就是fn2console.log('嘿嘿');}fn2();fn1();//如果是全局调用 window调用 那么fn1.caller就是null
callee
获取函数自身 用于匿名函数递归调用
//arguments 获取所有的实参function fn5() {//arguments伪数组 本质是对象 也有自己的属性callee获取函数自身 length获取实参的个数console.log(fn5.arguments);console.log(fn5.arguments.length);//获取实参的个数console.log(fn5.arguments.callee);//获取函数自身 fn5 用于匿名函数递归调用console.log(fn5.length);//获取形参的个数}fn5(10, 20, 30, 40)
- 总结
- call 是属于Function.prototype 作用是修改函数中this的指向
- caller 是属于函数对象的成员 作用是获取调用这个函数的引用(我被谁调用了)
- callee 是属于arguments对象的 作用是获取函数本身 应用于匿名函数递归调用
call与caller与callee的区别相关推荐
- Js中caller和callee的区别
1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回null (举个栗子哈 caller给你打电话的人 谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时 ...
- caller和callee两者区别
caller返回一个函数的引用,这个函数调用了当前的函数. callee返回正在执行的函数本身的引用,它是arguments的一个属性. caller 注意: 1 .这个属性只有函数执行时才起作用 2 ...
- caller和callee的区别
callee caller返回一个函数的引用,这个函数调用了当前的函数. 使用这个属性要注意 这个属性只有当函数在执行时才有用 如果在javascript程序中,函数是由顶层调用的,则返回null f ...
- call、aplly、caller、callee分别是什么?
call和aplly的区别: 概念: call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.因为 JavaScr ...
- javascript 中 caller 与 callee 的作用以及用法
这两个关键字在平时编码中几乎难以用到,但它们既然存在于javascript语言体系中,那么还是有必要了解下. caller 是 javascript 函数类型的一个属性,它引用调用当前函数的函数 fu ...
- JavaScript基础之 caller和callee
后面继续聊数组相关的一些事情的时候,会出现这两个属性,放在篇幅里面解释,感觉会前后不连贯,所以单独就弄出来作为一篇.本篇很短就是简单的解释其作用,所以想要深入了解的可以跳过本篇了. caller:所有 ...
- javascript中caller和callee区别以及使用场景
英文翻译 caller n. 访客:[通信] 呼叫者:打电话者:召集员 callee n. 被召者 caller 理解为指的是调用当前函数的函数,也就是调用者,如果没有其他函数调用的话就是null, ...
- java caller_js中的caller和callee属性
caller 返回一个对函数的引用,该函数调用了当前函数. functionName.caller functionName 对象是所执行函数的名称. 如果一个函数f是在全局作用域内被调用的,则f.c ...
- JavaScript 之arguments、caller 和 callee 介绍
1.前言 arguments, caller , callee 是什么? 在javascript 中有什么样的作用?本篇会对于此做一些基本介绍. 2. arguments arguments: ...
最新文章
- 终端输入参数:argparse和sys.argv[]的用法
- linux系统编码修改
- 鼠标移动时,光标相对于对象的位置
- android 多选项实现
- mysql命令导出数据库_MYSQL 数据库导入导出命令
- 发布 128 核 Altra Max,自研内核,明年推出 5nm 处理器,“性能怪兽”Ampere 搞大事?
- FreeBSD系统忘记root密码
- jquery 读取checkbox
- onresize事件会被多次触发_如何修复移动浏览器上 touchend 事件不触发的bug
- c语言程序设李忠成主编答案,2007—2008学年第二学期基础学院上机课程表.doc
- 自定义xadmin后台首页
- python工资这么高为什么不学-为什么学Python的人越来越多?
- linux 创建文件夹快捷方式
- 【AE】缺少Color属性或方法解决办法
- 尝试导出Cities Skyline完整城市模型遇到的问题与解决
- Matlab+cpp矩量法代码演示
- 小米5破解安装centos系统
- 《深入理解Java虚拟机》内存管理机制 部分 读书笔记
- 笔记本3.0 typec接口插上U盘没有反应
- 人工客服为什么总是接不通?
热门文章
- tomcat中的session管理
- python简单操作题,Python常用操作运算符及练习题
- Ubuntu开机自动设置笔记本屏幕亮度
- 风神小度_风神与野面具:设计出色的像素艺术角色
- python父类以及子类
- 面试不说点分布式的东西,面试官都有点看不起我呀
- 四非计算机类本科保研上岸985复盘
- 经济危机下如何抉择去与留
- 关于确界的一些知识点
- Android之玩转MPAndroidChart让(折线图、柱形图、饼状图、散... http://www.apkbus.com/thread-267832-1-1.html)...