《悟透javascript》摘抄1.2--Caller

xiaoxiao2021-02-28  94

函数自身有个caller属性,便是调用当前函数的上层函数;看以下代码:

<script> function WhoCallMe(){ alert("My caller is "+WhoCallMe.caller); }; function CallerA(){ WhoCallMe(); } function CallerB(){ WhoCallMe(); } alert(WhoCallMe.caller); WhoCallMe(); CallerA(); </script>

alert(WhoCallMe.caller);输出的是:null WhoCallMe();输出的是:my caller is null; CallerA();输出的是:function CallerB(){ WhoCallMe(); };

解析:

如果函数的caller是null,函数未调用或全局调用; 可以看出其实caller是动态变化的。由null变化为调用函数,然后在恢复; 注:目前chrom/firefox/opera均支持。(原书中写明opera不支持caller属性,截止写这篇文章时,已经可以使用)

转载请注明原文地址: https://www.6miu.com/read-28602.html

最新回复(0)