La dépréciation de la propriété arguments.callee.caller de JavaScript
La propriété arguments.callee.caller, qui permettait d'accéder à l'appelant du courant fonction, était obsolète en JavaScript en raison de ses inconvénients inhérents.
Implications de la dépréciation
Malgré sa dépréciation, la prise en charge de arguments.callee.caller varie selon les navigateurs. Certains navigateurs, comme Mozilla et IE, continuent de le prendre en charge indéfiniment, tandis que d'autres, comme Safari et Opera, ont adopté ce support, mais sa disponibilité reste peu fiable sur les navigateurs plus anciens.
Raisons de la dépréciation
La principale raison de la dépréciation de arguments.callee.caller vient de ses effets néfastes sur l'optimisation. En référençant la pile d'appels, cela entrave les optimisations essentielles telles que l'inline et la récursivité de queue. De plus, cela peut conduire à un comportement inattendu en modifiant la valeur de "this" lors d'appels récursifs.
Approches alternatives
Avec l'introduction des expressions de fonctions nommées dans ECMAScript 3 , une solution supérieure a émergé. Les expressions de fonction nommées permettent des appels récursifs sans avoir besoin de arguments.callee.caller. Cette approche offre de nombreux avantages, notamment :
Conclusion
La dépréciation de arguments.callee.caller en JavaScript était une décision mûrement réfléchie visant à améliorer les performances et à promouvoir une optimisation plus efficace du code. Les expressions de fonctions nommées offrent une alternative viable qui répond aux limites de arguments.callee.caller tout en offrant une multitude d'avantages supplémentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!