在JavaScript / ActionScript中重新定义Math.constructor是否有任何实际用途?

Math对象没有prototype属性,但具有构造函数属性.有没有重新定义构造函数有用的情况?

解决方法:

MDN说:

Unlike the other global objects, Math is not a constructor. All properties and methods of Math are static.

在其他语言中,当类是静态的时,您可以直接使用其属性和方法,而无需创建该类(对象)的实例.如果使用Math构造函数,则不存在支持该对象的本机类型,与基本类型不同:Number,String,Boolean.它们可以使用包装器转换为对象.

此外,扩展根对象是一种不好的做法.如果将来在环境中实现新功能并且代码没有对此进行故障安全检查,则它将覆盖本机功能.

我个人认为你不是构造函数,也不是原型 – 你可以定义自己的数学函数. Math对象在这里只是为了呈现标准函数,并且为程序员提供了不定义Pi或E的杠杆作用.用户定义的数学函数可能比内置函数慢几倍.

上一篇:Actionscript对象与Javascript对象


下一篇:javascript – 什么更有效率?检查==或只是改变变量?