他们两个完全是风马牛不相及问这个还不如问caller和callee呢
解决方案 »
- 怎么在javaScript中获取web.config中的参数
- 救火啊~~~
- 一个标签同时使用Class和ID,为什么JS中使用document.getElementById获取不到该对象
- 关于一个与php间传值的问题
- 在线编辑器编辑路径之类的时候,老是把http://dd这段给加上去?
- 如何控制页面背景图片显示的时间?
- 对话框问题 急啊,分不够,再加!!!
- 求助:如何用javacript调用windows中锁定计算机事件,在线等待!!
- 菜鸟求救,扇分
- 请教各位高手,如何将不规则表格的转存成word和excel
- html中通过js向本地文件写数据 失败 这一小段代码有什么问题吗?
- 求教!ExtJS布局中Grid始终显示不出来!
function a(){
console.log(this)
}
var b = {}
a.call(b)//这里打印出来的是b={},可以看出this指向了b
a()//这里在控制台打印出来的是window,因为是定义的一个全局函数,直接调用等同于window.a()这2个函数唯一的局区别是在后面参数,
call接受无数个参数,第二个后的参数会传进函数中,
apply直接收2个参数,第二个参数为一个参数数组
如:a.call(b,1,2,3,4,5)跟a.apply(b,[1,2,3,4,5])这2者是等价的。callee跟caller又是2个不同的概念
callee是指向的是当前函数,调用方式:arguments.callee
caller是指向的是调用函数的函数,调用方式:函数名.caller
function a(){
console.log(arguments.callee)//调用方式:arguments.callee
console.log(a.caller)//调用方式:函数名.caller
}
function b(){
a();
}
b()//这里会分别打印出a跟b这2个函数
a()//这里会打印出a跟null,默认顶层函数的调用者为null