關於caller和callee的對比

代碼和結果

		function a(){
			console.log("a.caller",a.caller);
			console.log("arguments.callee",arguments.callee);
		}
		(function b(){
			a()
		})();

對比

  • caller是通過函數來調用,返回的是該函數的調用環境,也就是調用棧的最頂層(當最頂層爲全局作用域時,返回null)
  • callee是通過arguments對象來調用,返回的是執行時的函數環境,通常用於匿名函數遞歸調用自身

 

注意

在ES5嚴格模式中,該方法被廢棄不再使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章