本文介绍了在Javascript中更改typeof运算符的行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我想知道是否有任何方法可以覆盖 typeof 运算符的行为。具体来说,我想在 foo =hi和 typeof 运算符时返回string code> bar = new String(hi)。I would like to know if there is any way of overriding the behaviour of the typeof operator. Specifically, I want to return "string" when the typeof operator is called both on foo = "hi" and bar = new String("hi"). typeof bar 返回object但我希望它返回string。typeof bar returns "object" but I want it to return "string".我知道这可以通过声明我自己的函数或访问构造函数名来完成但我想要修改 typeof 运算符的行为。 I know this can be done by declaring my own function or accessing the constructor name but I want to modify the behaviour of typeof operator. 编辑 - 我正在寻找一些我可以在程序开头添加的代码,这些代码修改了其余部分中所有类型操作符的行为该程序。 推荐答案这是不可能的。原生运营商的行为无法改变。That is impossible. The behaviour of native operators cannot be changed.相关链接: 为什么没有将运算符重载添加到ECMAScript? 在quora.com上 ES 值代理提案。它不允许您更改 typeof 的现有功能,但可以让您定义自己的其他类型。 Why hasn't operator overloading been added to ECMAScript? at quora.comThe ES value proxy proposal. It doesn't let you change the existing functionality of typeof, but would enable you to define your own additional types. 这篇关于在Javascript中更改typeof运算符的行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-20 18:31