Math.constructor === Object
// true
Math.constructor === Function
// false
Number.constructor === Object
// false
Number.constructor === Function
// true
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
因为math就是一个单体对象啊我们经常不都这么用Math.floor,Math.sqrt么?
因为Math是直接继承自Object对象,而Number是继承自Function的。
这里的Math和Number可以分别视为Object和Function的实例。
Math.constructor其实是Math.__proto__.constructor(__proto__可省略),指向的是Math的原型,也就是Object.prototype.constructor,Object的构造函数,所以显示为true。
Number也是同理,Number.constructor指向的是Function的构造函数。
可以用Math instanceof Object来判断Math是否是Object的实例。
这里Number instanceof Object会显示true,原因就是Function也是继承自Object的。