function aaa(){
bbb();
console.log(aaa.caller);//null
}
function bbb(){
console.log(bbb.caller);//ƒ aaa()
console.log(arguments.callee.caller);//ƒ aaa()
}
aaa();
- 函数对象上的caller属性引用的是调用当前函数的函数(父函数)。
- 如果在全局作用域调用的则为null。
- 如果要降低耦合度,可以通过arguments.callee.caller来引用同样的值。
- 在严格模式下访问argumetns.callee会报错。
- 在严格模式下访问arguments.calller也会报错。
- 严格模式下不能给函数的caller属性赋值,否则会报错。